redis集群实操
集群特点
相对于主从复制和哨兵模式,集群具有更高的可用和容灾备份。集群使用多主多从,一个master宕机的情况下,其他的master能继续提供些服务,master所属的slave也能快速替换master,在较小的误差下,能实现数据的一致性。集群还能进行动态扩容、缩容,增加和减少集群数量不影响业务。集群使用slots来进行数据的分片,每个master上分布一定数目的slots,针对key进行crc计算后再取模,就能找到对应的slots。
一、redis槽位slots
redis集群动态扩缩容依赖slots,redis集群默认有16384(2^14)个槽位,每个master节点分布一定数目的槽位(一般是平均分布)。当需要get/set key 时,先对key进行crc计算再对16384取模,得到slots,根据slots找到对应master节点,进行读写操作(每个master上数据不一样,需要找到对应的master才能进行读写)。
二、集群容灾备份
集群使用多主多从的模式,即多个master和多个slave构成一个redis集群,每个master能进行读写,slave只能进行读。每个master有自己的slave节点,slave只会同步自己所属master的数据,当master宕机不可用时,也是由从属slave替补成master。如果master宕机,slave会替换master,短时间内该master不能提供写服务,其他的master可以继续提供写服务,对业务的影响很小