设计案例网站免费凡客建站官网
news/
2025/10/9 4:52:41/
文章来源:
设计案例网站,免费凡客建站官网,wordpress快速建站视频教程,产品促销活动方案Redis主从架构 单节点Redis的并发能力是有上限的#xff0c;要进一步提高redis的并发能力#xff0c;就需要搭建主从集群#xff0c;实现读写分离。 修改每个文件夹内的配置文件#xff0c;将端口分别修改为7001、7002、7003#xff0c;将rdb文件保存位置都修改为自己所在…Redis主从架构 单节点Redis的并发能力是有上限的要进一步提高redis的并发能力就需要搭建主从集群实现读写分离。 修改每个文件夹内的配置文件将端口分别修改为7001、7002、7003将rdb文件保存位置都修改为自己所在目录在/tmp目录执行下列命令
sed -i -e s/6379/7001/g -e s/dir .\//dir \/tmp\/7001\//g 7001/redis.conf
sed -i -e s/6379/7002/g -e s/dir .\//dir \/tmp\/7002\//g 7002/redis.conf
sed -i -e s/6379/7003/g -e s/dir .\//dir \/tmp\/7003\//g 7003/redis.conf修改每个实例的声明IP
虚拟机本身有多个IP为了避免将来混乱我们需要在redis.conf文件中指定每一个实例的绑定ip信息格式如下
# redis实例的声明 IP
replica-announce-ip 192.168.150.101开启主从关系
现在三个实例还没有任何关系要配置主从可以使用replicaof 或者slaveof5.0以前命令。
有临时和永久两种模式 修改配置文件永久生效 在redis.conf中添加一行配置slaveof masterip masterport 使用redis-cli客户端连接到redis服务执行slaveof命令重启后失效
slaveof masterip masterport主从节点之间会实现数据共享主节点负责写从节点负责读如果从节点要写入数据是会被拒绝的。 数据同步原理 主从第一次同步是全量同步 master如何判断slave是不是第一次来同步数据 Replication Id简称replid是数据集的标记id一致则说明是同一个数据集。每一个master都有一个唯一的replid而slave会继承master节点的replid。offset偏移量随着repl_baklog中的数据逐渐增多。slave完成同步的时候也会记录当前的offset如果master的offset大于slave的offset的话就需要更新。 因此slave做数据同步必须向master声明自己的replication id和offsetmaster才知道要同步哪些数据。 增量同步 如何进行优化 Redis哨兵 Redis提供了哨兵Sentinel机制来实现主从集群的自动故障恢复。哨兵的结构和作用如下 监控Sentinel会不断检查master和slave是否按照预期工作自动故障恢复如果master节点故障了Sentinel会将其中一个slave提升为master。当故障实例恢复后也以新的master为主通知Sentinel充当Redis客户端的服务发现来源当集群发生故障转移的时候会将最新消息推送给Redis的客户端 服务状态监控
Sentinel基于心跳检测机制检测服务状态每隔1秒向集群中的每一个实例发送Ping命令
主观下线如果某个Sentinel节点发现某个实例没有在规定的时间内响应就认为这个实例主观下线客观下线如果超过指定数量quorum的sentinel都认为该实例主观下线了则该实例客观下线。quorum的值最好超过Sentinel值的一半 选举新的master
一旦发现master故障Sentinel需要在slave中选择一个作为新的master节点选择依据
首先会判断slave节点与master节点断开时间的长短如果时间超过了指定值down-after-millisecond*10就会排除这个slave节点然后判断slave节点的slave-priority值越小优先级越高0则不参与选举如果slave-priority一样则判断slave节点的offset值offset越大说明数据越新优先级越高最后是判断slave节点的运行id大小越小的优先级越高
如何实现故障转移
当选中了其中一个slave作为新的master故障转移的步骤如下
Sentinel给备选的slave1节点发送slaveof no one命令让其成为master节点sentinel会给其他的slave节点发送slaveof slave1 port命令让这些slave成为新master的从节点开始从新的master节点上同步数据最后Sentinel将故障节点标记为slave直接修改配置文件当故障节点恢复过来的时候也会自动成为新master的slave节点
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/932194.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!