之前有看过一些Redis模式相关文章,今天又看了上面两篇。这里总结一下笔记。学习之用。
-
主从模式下,一主多从的话,主挂了,本Redis服务就不能写,只能读(从服务器可以提供读),主服务器才可以进行读写。
-
Sentinel模式:主挂了,Sentinel可以选择哪一个从变成主,这个过程叫failover。sentinel会监听Redis是否正常运行,会通知application错误信息;还有一个功能:configurationprovider:client通过sentinel获取redis地址,并在failover时更新地址
-
原来集群cluster模式下,单个集群是用主从复制的,但是这个主服务器挂掉之后,从节点是可以通过心跳监听机制竞选成为主节点的。
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的配置。