Redis高可用
两套方案
cluster,sentinel
sentinel redis
当发现Redis主节点宕机后,多个sentinel之间会选一个裁判出来,通过投票的方式,多数大于小数,由于这个东西,所以机器数都是基数的,不然就脑裂了
然后再进行从新选主,且由裁判执行
不同系统之间的选举
leader elects master
sentinel leader负责选举新的leader,这个过程中还可以挑一个最好的
选择规则:
- 优先选数据最完整的slave,因为主从同步是有时间窗口的
- slave slave-prioirty 值最低的优先
- 多个slave满足条件后,选runid最小的
redis cluster
就是分片,就是分库分表那一套
有个slot的概念,内置了16384个槽,且不能改变。一个slot只能在一台机器上,且在主节点上
crc16(key) % 16384(固定值,不能调节了,所以就不用了 )分配在一个slot上。

resharding
Redis cluster的数据量极限,16384个slot,一个slot一个Redis master节点
1000w * 16384 = 16384000w条数据