redis-cluster集群原理

Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。Redis 在3.0版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是现在互联网企业动辄大几百G的数据,可完全是没法满足业务的需求,所以,Redis 在 3.0 版本以后就推出了集群模式。

在redis3.0之后推出redis-cluster分片集群,这是redis官网主推的一种集群方式.之前的redis主从复制也算是一种集群,但是数据过于冗余.在每台redis服务器中都需要备份相同的数据,相对主从复制,redis-cluster性能更好.

redis-cluster分片集群完全去中心化,每个节点都是平等的,并把所有的key分成了16384个solt,每个 Redis 实例负责其中一部分 slot.集群中的所有信息(节点、端口、slot等),都通过节点之间定期的数据交换而更新。Redis 客户端可以在任意一个 Redis 实例发出请求,如果所需数据不在该实例中,通过重定向命令引导客户端访问所需的实例。

在这个图中,每一个蓝色的圈都代表着一个redis的服务器节点。它们任何两个节点之间都是相互连通的。客户端可以与任何一个节点相连接,然后就可以访问集群中的任何一个节点。对其进行存取和其他操作

那么redis是怎么做到的呢?首先,在redis的每一个节点上,都有这么两个东西,一个是插槽(slot)可以理解为是一个可以存储两个数值的一个变量这个变量的取值范围是:0-16384。还有一个就是cluster我个人把这个cluster理解为是一个集群管理的插件。当我们的存取的key到达的时候,redis会根据crc16的算法得出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作。

redis-cluster集群原理

原文链接:https://blog.csdn.net/weixin_42214548/article/details/102943712

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/17003

(0)
上一篇 2022年11月17日 21:12
下一篇 2022年11月17日 21:12

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml