以下内存参考蒋德钧老师讲义如何保存更多的数据为了保存更多的数据,通常使用大内存云主机和切片集群两种方法。实际上,这两种方法分别对应着redis应对数据量增多的两种方法:纵向扩展和横向扩展。纵向扩展:升级单个redis实例的资源配置,包括增加内存容量、增加磁盘容量、使用更高配置的cpu。就像下图中,原来的实例内存是8GB,硬盘是50GB,纵向扩展后,内存增加到24GB,磁盘增加到150GB。横向扩展
SDSSDS本质上就是char *,但是因为有了表头sdshdr结构的存在,所以SDS比传统C字符串在某些方面更加优秀。一般传统C字符串是有结束符的,遇到’\0‘则认为已经到达末尾,忽略结尾以后的所有字符。**SDS表头的buf被定义为字节数组,判断是否到达字符串结尾的依据是表头的len成员。**因此获取字符串长度时间复杂度为O(1)。总结下sds的特点是:可动态扩展内存、二进制安全、快速遍历字符
数据迁移与扩容实践:    工具目前从 mycat1.6,准备工作:1、mycat 所在环境安装 mysql 客户端程序。 2、mycat 的 lib 目录下添加 mysql 的 jdbc 驱动包。 3、对扩容缩容的表所有节点数据进行备份,以便迁移失败后的数据恢复。  步骤:1、复制 schema.xml、rule.xml 并重命名为 newSchema.xml、newRule
MySQL不停机主从部署引言搭建数据库备份主库数据——XtraBackup工具安装制作全量备份从库恢复全量备份数据设置主从主库操作获取binlog和pos位置从库 引言在日常开发中,MySQL数据库的使用非常频繁。在MySQL的使用过程中,我们需要面对两个方面的问题:性能问题容灾问题性能问题指的是随着应用、并发量的增加,原本的一个数据库无法再承受更多的连接和访问,因此需要使用从库,以减轻主库的负
目录一、简介二、升级操作2.1 es配置2.2 logstash设置2.3 守护进程配置2.4 查看结果一、简介单机伪集群是什么概念呢,就是同一台服务器有多个es节点先介绍一下,原先的环境为在一台服务器192.168.0.15上安装了es、kibana、logstash,通过守护进程来启动服务,单机单节点。现在升级为单机多节点。 二、升级操作查看服务进程supervi
持之以恒,贵在坚持,每天进步一点点!作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:https://github.com/sunshinelyz/mykit-delayPS: 欢迎各位Star源码,也可以pr
主要简单总结下,mysql在线扩容和缩容一般涉及到的内容,主要包括三个方面,1.在线也就意味着需要把增量的数据重新分布到新的拓扑结构中,我们一般称做增量复制,2.原有的数据需要一条不漏的扫出来重新分布到新的拓扑结构中,这个一般叫做全量复制,3.全量做完,增量正在同步,把应用的数据路由拓扑切到新的路由拓扑上来,并且做到无数据丢失,这个我们叫做停写切换。做好这三个方面的工作,能够达到的效果就是应用在最
实际上,不停机扩容,实操起来是个非常麻烦而且很有风险的操作一、第一阶段:在线双写,查询走老库1. 建立好新的库表结构,数据写入久库的同时,也写入拆分的新库 2. 数据迁移,使用数据迁移程序,将旧库中的历史数据迁移到新库 3. 使用定时任务,新旧库的数据对比,把差异补齐二、在线双写,查询走新库1. 完成了历史数据的同步和校验 2. 把对数据的读切换到新库 三、第三阶段:旧库下线旧库不再写入新的数据经
Redis数据迁移方式生产环境可能涉及到单台或者redis集群的迁移,比较幸运的是redis的提供了很多种数据迁移的方式,并且都非常简单。具体迁移的方式大家可以参考其他博客。我这里重点讨论生产环境迁移的需求和解决方案。方案一 生产环境迁移方案生产环境要求一般保证数据不能丢失目标集群和源集群的redis服务不能停止数据要实时同步基于以上三点要求,我觉得唯一可以满足的方式就是通过集群的同步机制。增加一
转载 2023-08-30 08:53:43
287阅读
ext4不停机在线扩容    1、修改虚拟机磁盘容量大小    2、重新识别磁盘容量大小# ls /sys/class/scsi_disk/ # echo 1 > /sys/class/scsi_disk/2\:0\:1\:0/device/rescan # fdisk  -l    3、调整目标分区大小# fdisk /dev/sdb     d     n     p     1    
原创 2019-10-11 15:01:33
3083阅读
1、背景最近在折腾Kafka日志集群,由于公司部署的应用不断增加,日志采集程序将采集到的日志发送到Kafka集群时出现了较大延迟,总的TPS始终上不去,为了不影响业务团队通过日志排查问题,采取了先解决问题,再排查的做法,对Kafka集群进行扩容,但扩容后尴尬的是新增加的5台机器中,有两台机器的消费发送响应时间比其他机器明显高出不少,为了确保消息服务的稳定性,又临时对集群进行缩容,将这台机器从集群中
目录:一、正常情况下发服务演化之路1.单体应用2.RPC应用3.分库分表二、单元化三、最后的总结刚开始工作的菜鸟,总会有各种疑问,刚开始是对 JDK API 的疑问,对 NIO 的疑问,对 JVM 的疑问。当工作几年后,对服务的可用性,可扩展性也有了新的疑问,什么疑问呢?其实是老生常谈的话题:服务的扩容问题。正常情况下的服务演化之路让我们从最初开始。1、单体应用 每个创业公司基本都是从类似 SSM
Redis持久化简介从两个点,我们来了解下Redis持久化为什么需要持久化?Redis是个基于内存的数据库。那服务一旦宕机,内存中的数据将全部丢失。通常的解决方案是从后端数据库恢复这些数据,但后端数据库有性能瓶颈,如果是大数据量的恢复,1、会对数据库带来巨大的压力,2、数据库的性能不如Redis。导致程序响应慢。所以对Redis来说,实现数据的持久化,避免从后端数据库中恢复数据,是至关重要的。Re
转载 2023-08-17 17:21:06
137阅读
需求说明类似订单表,用户表这种未来规模上亿甚至上十亿百亿的海量数据表,在项目初期为了快速上线,一般只是单表设计,不需要考虑分库分表。随着业务的发展,单表容量超过千万甚至达到亿级别以上,这时候就需要考虑分库分表这个问题了,而不停机分库分表迁移,这应该是分库分表最基本的需求,毕竟互联网项目不可能挂个广告牌"今晚10:00~次日10:00系统停机维护",这得多low呀,以后跳槽面试,你跟面试官说这个迁移
前言 Redis是一个开源的高性能键值对数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,并借助许多高层级的接口使其可以胜任如缓存、队列系统等不同的角色。 Redis持久化了解 为了让性能更加优异,Redis默认是把所有的数据都存在内存中的。但是当服务器重启或程序异常崩溃时,Redis的数据就会全部丢失。因此出现了持久化的概念。持久化
文章目录前言准备工作主从同步原理主节点宕机恢复相关配置项日志观察同步过程哨兵(Sentinel)原理日志解读其他问题参考链接 前言本问阐述 Redis 主从同步、哨兵监控和故障迁移的过程,并通过各个服务日志加以验证。准备工作主从和哨兵安装见 安装过程。为了方便通过日志观察同步过程,你可以在每个 Redis 和 Sentinel 配置文件中修改下面参数,实现前台运行并将日志输出到控制台。# 这两个
坐标:浙江省杭州市概述:鄙人才疏学浅,了解到不停机部署方案有热加载、热部署、集群分批部署三种方式,这里只针对这三种方式进行讨论。一、热加载  原理:热加载的实现原理主要依赖jvm的类加载机制,在运行时对被修改过的类进行重新载入。  实现方式:在容器启动的时候起一条后台线程,定时的检测类文件的时间戳变化,如果类的时间戳变掉了,则将类重新载入。  适用场景:热加载会直接修改jvm中的字节码,这种方式对
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言迁移步骤问题分析和处理: 前言线上redis的数据迁移,将老服务器数据迁移到新服务器中,主要采用dump.rdb文件进行恢复,redis使用docker部署,部署脚本如下:docker run --name redis_6379 –ip 10.10.1.10 -p 6379:6379 –network=v_over
转载 2023-05-26 17:19:51
198阅读
一、发布与溢出“发布(Publish)”一个对象的意思是指,使对象能够在当前作用于之外的代码中使用。这个“之外”,尤为关键,各种出问题的地方,都是因为这个“之外”所引起的。例如,如果在对象构造完成之前就发布该对象,就会破坏线程安全性。当某个不应该发布的对象被发布时,这种情况就被称为“溢出”。下面使用简单的例子进行说明:1. 日常非常不注意的行为class Status { privat
开始前先说明一下环境 redis规模是在kubernetes环境下搭建的集群三主三从模式 使用hostpath将数据保存在宿主机上 6个POD分布在三台机器上 需求是要把6个POD分开调度到6台机器上 迁移的大概想法就是 redis的三个master节点不做迁移 只迁移三个slave 因为是生产环境中 安全第一 迁移前保证集群状态正常以及确认master节点分布在已有的主机节点上 确认新迁移的主机
  • 1
  • 2
  • 3
  • 4
  • 5