之前有看过一些Redis模式相关文章,今天又看了上面两篇。这里总结一下笔记。学习之用。
Redis集群中的节点都是通过Gossip协议进行通信的。
槽是集群内数据管理和迁移的基本单位。
一个 Redis 集群包含 16384(0~16383) 个哈希槽(hash slot),数据库中的每个键都属于这 16384 个哈希槽的其中一个,集群中的每个节点负责处理一部分哈希槽。分槽的时候尽量均分,每一个key落在哪一个槽中是通过key的CRC16值模上16384得到的值来计算的。
- 集群模式在高并发和大数据量的时候就可以代替哨兵模式
- 哨兵模式中的sentinel也可以是一个集群;
- 当哨兵发现master宕机了,就会进行一个failover,集群哨兵是并行轮流进行failover的,而不是并发进行。只有第一个sentinel出席县failover-timout的时候,第二个sentinel才会重新进行failover。
一个哨兵failover成功之后,他就会把关于master最新的配置通过广播形式通知其他sentinel,其他的sentinel更新对应master的配置。