如何理解Redis集群的Slot映射

Redis在单机模式时,使用数据结构dict来实现数据库。
Redis在集群模式时,也是使用数据结构dict来实现数据库,但是集群模式对于数据库有其他需求,包括数据的节点无关性、内部操作对客户端需要屏蔽、冗余备份等,并且在一定的情况,数据还需要在不同的节点间实现迁移。
在所有模式下,Redis的节点数据的备份都是使用备份来实现的。这个暂时不深入。

Redis引入的slot来解决如何实现集群模式下部分需求的问题。
事实下,节点并不是存储在slot里面,slot只是用于管理数据与节点相联的手段而已。在处理相关逻辑问题时,redis使用slot作为索引来管理数据下的所有数据。

举一个例子,集群模式下,使用redis-cli连接服务器节点A(指派了slot[2000-3000])并issue如下指令set name derekzhuo
-node A计算nameslot1000,发现slot 1000不在本节点上,向redis-cli返回该slot的节点信息;
-redis-cli连接新的node,并且重新issue该指令。

以上流程就是cluster模式下如何处理一个键的流程,也可以很清楚地看出slot的作用其实就是用于做key索引而已。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值