redis主从架构
单节点Redis的并发能力是有上限的,要进一步提高redis的并发能力,就需要搭建主从集群,实现读写分离。
启动三个redis节点,启动成功之后,这三个节点是没有任何关系的。需要手动配置主从关系。
配置方式第一种方式:临时配置 重启后会生效
slaveof <masterip> <masterport>
slaveof 127.0.0.1 6739
// 使用此命令可以查询集群的信息
info replication
从节点只能执行读操作。你在从节点上进行写操作会报错。
配置第二种方式,直接修改配置文件,在配置文件当中加入slaveof <masterip> <masterport>。
redis主从数据同步原理:主从第一次同步是 全量复制,也就是slave节点第一次连接上master节点的时候。master节点会通过bgsave命令生成rdb文件,然后发送rdb文件给slave节点,slave节点拿到rdb文件之后,清除本地的数据加载这一份rdb的文件。(后面的是增量复制)master节点在rdb期间,新接收的命令,会写入一个名为repl_baklog的缓冲区的文件当中,最后将缓冲区的命令发送给slave节点。
master节点判断slave节点是否是第一次连接的细节。
Replication Id :这个id是一个数据集的标记,id相同说明属于同一个数据集。master可以和slave节点比较这个id。
offest:偏移量,数据缓冲区repl_baklog的数据会越来越多,这个偏移量就是用来判断slave节点的数据是否需要更新。
master判断一个节点是否是第一次同步的依据,就是看replication id 是否一致。
数据缓冲区的原理 repl_baklog,这个文件是一个固定大小的数组,但是他是一个环形的,也就是说角标达到数组的末尾,会从0头部开始重新写,这里会覆盖头部的数据。repl_baklog大小是有上限的,如果slave节点断开的时间过长,导致尚未备份的数据被覆盖,这种情况就无法进行增量同步,只能进行全量同步。
优化redis主从架构:①在master节点配置repl-diskless-sync yes启用无磁盘复制,就是直接往网络io中写。(这个配置网络的带宽必须要好)②redis单节点占用内存不要太大。③适当提高repl_baklog的大小,发现slave节点宕机要尽快恢复故障,避免发生全量同步的情况。④master节点的从节点数量不要太多,可以采用主节点-从节点-从节点的链式架构。
有任何问题联系 QQ 676558206 email [email protected] [email protected]
非特殊说明,本文版权归 langhai 所有,转载请注明出处。
本文标题: redis主从架构
延伸阅读
- 浪海博客系统友情链接说明
- 浪海同志的一生
- 浪海皇室 QQ飞车手游
- 浪海博客系统部署说明
- minio 相关说明
- rabbitMQ 相关说明
- mysql相关说明
- java基础面试题002
- gateway服务网关基本使用
- 浪海导航关于本站