在Redis中提供的集群方案总共有三种:
主从复制、 哨兵模式、分片集群
1.主从复制:
具体流程:
1)全量同步
2)增量同步
面试作答:
2.哨兵模式
结构和作用:
哨兵选主规则
集群脑裂
当老的master和哨兵不在一个网络分区,哨兵从原来的slave中选择除了新的master节点,导致某时刻有两个分裂的主节点对外提供服务,如果当网络分区恢复后将产生数据丢失
网络恢复了,但是老的主节点自己存了点私货,但在新的集群是需要从新的master同步全量数据过来的,于是老masterd的私货数据丢了
集群脑裂解决办法
redis中有两个配置参数:
min-replicas-to-write 1表示最少的salve节点为1个
min-replicas-max-lag 5表示数据复制和同步的延迟不能超过5秒
面试作答:
3.分片集群
结构
集群存在多个master,访问任意主节点都会转发到正确的节点进行读写,彼此监测健康状态
机制类型哨兵可参考(Redis学习 集群下线,故障转移(十九)_redis集群主节点挂一半-CSDN博客)
数据读取
引入哈希槽的概念,有16384个哈希槽,将key通过CRC16校验后对该值取模而决定存放在哪个槽中
面试作答