主从复制
使用过SLAVEOF命令追随一个主服务器
2.8版本之前的SYNC命令和主从复制机制效率极低,建议升级到2.8版本以上
PSYNC
作用
从服务器断开后会部分同步主服务器
部分同步的大小取决于挤压缓冲区的大小
建议设置成:2*断开重连时间*每秒写命令的数据量
构成
主服务器运行ID
同步前需要确认上一次主服务器ID和该命令的参数是否一致
主服务器复制挤压缓冲区
参数中的偏移量在挤压缓冲区中可以部分同步
主服务器复制偏移量
心跳机制
作用
实现数据高可用
配置规则:如果从服务器延迟都大于某个值,则可以拒绝写入
检测命令是否丢失
偏移量与主服务器不一致时,主服务器会自动发送补全命令
Sentinel(哨兵)模式
Redis高可用性解决方案
Sentinel模式下启动的redis服务器,本身为特殊模式
本身具有高可用性,多个Sentinel实例可以同时监控一个主服务器
Sentinel节点监控到主服务器下线时,仅仅是主观下线,会再去询问别的Sentinel节点。如果有多个Sentinel节点都标记主节点为主观下线,则认为是客观下线
首先发现客观下线的Sentinel节点,会要求别的Sentinel节点把自己设置为酋长,然后执行故障转移任务——Raft算法
故障转移机制
挑选一个良好的从服务器变成新的主服务器
命令其他服务器跟随这台新的主服务器
当监控到旧的服务器重新上线时,命令其跟随新的主服务器