redis集群支持在多个节点之间进行数据共享。redis集群提供了以下两个好处
1:将数据自动切分(split)到多个节点的能力
2:当集群中的某一个节点故障时,不会影响处理客户端请求的能力。
一个 Redis 集群包含 16384 个哈希槽(hash slot),数据库中的每个数据都属于这16384个哈希槽中的一个。集群使用公式 CRC16(key) % 16384 来计算键 key 属于哪个槽。集群中的每一个节点负责处理一部分哈希槽。这样的话就可以很方便的向集群中添加或者移除节点。(假设集群中有A B C 三个节点)
添加节点:如果要添加一个D节点到集群中,那么只需要将节点ABC中的某些哈希槽移动到节点D就可以了
移除节点:如果要移除节点A,那么只需要把节点A中的所有哈希槽转移到节点B和节点C中,然后再移除空白节点A就可以了。
集群中的主从复制
集群中的每个节点都有1个至N个复制品,其中一个为主节点,其余的为从节点,如果主节点下线了,集群就会把这个主节点的一个从节点设置为新的主节点,继续工作。这样集群就不会因为一个主节点的下线而无法正常工作。
注意:如果某一个主节点和他所有的从节点都下线的话,redis集群就会停止工作了。
redis集群不保证数据的强一致性,在特定的情况下,redis集群会丢失已经被执行过的写命令
使用异步复制(asynchronous replication)是 Redis 集群可能会丢失写命令的其中一个原因
网络原因,如果网络断开时间太长,redis集群就会启用新的主节点,之前发给主节点的数据就会丢失。
文章标题
最新推荐文章于 2020-09-03 13:51:30 发布