10.安心技术梳理 - Redis 集群分片原理

Redis的分片机制

Redis集群分片原理

Redis集群方案总结

Redis Cluster搭建高可用Redis服务器集群

Redis Cluster 搭建高可用Redis服务器集群2

是否使用过Redis集群,集群的原理是什么?

Redis Sentinal着眼于高可用,在master宕机时会自动将slave提升为master,继续提供服务。

Redis Cluster着眼于扩展性,在单个redis内存不足时,使用Cluster进行分片存储

集群要实现的目的是要将不同的 key 分散放置到不同的 redis 节点,这里我们需要一个规则或者算法,

通常的做法是获取 key 的哈希值,然后根据节点数来求模,但这种做法有其明显的弊端,当我们需要增加或减少一个节点时,会造成大量的 key 无法命中,这种比例是相当高的,所以就有人提出了一致性哈希的概念。

一致性哈希有四个重要特征:

均衡性:也有人把它定义为平衡性,是指哈希的结果能够尽可能分布到所有的节点中去,这样可以有效的利用每个节点上的资源。

单调性:当节点数量变化时哈希的结果应尽可能的保护已分配的内容不会被重新分派到新的节点。

分散性和负载:这两个其实是差不多的意思,就是要求一致性哈希算法对 key 哈希应尽可能的避免重复

但是:

Redis 集群没有使用一致性hash, 而是引入了哈希槽的概念。

Redis集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽(Slot),集群的每个节点负责一部分hash槽。

这种结构很容易添加或者删除节点,并且无论是添加删除或者修改某一个节点&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis集群分片原理是为了解决容量问题,因为每台Redis机器的内存设置较小。通过将数据分散存储在多个节点上,可以增加整个集群的存储容量和性能。分片是根据数据的键进行的,每个键会被映射到一个特定的槽位,而每个槽位又会被分配给集群中的某个节点。这样,当客户端发送数据请求时,根据键的哈希值,可以确定数据所在的槽位,从而找到对应的节点进行数据的读取或写入操作。通过这种方式,可以实现数据在不同节点之间的分布,提高整个集群的性能和扩展性。 在Redis集群中,使用了哈希槽(hash slot)的概念来进行数据分片。集群中共有16384个哈希槽,每个槽可以存储一部分数据。当集群中新增或删除节点时,槽位会重新分配给新的节点,实现数据的平衡迁移。同时,Redis集群还使用了Gossip协议来实现节点间的信息交换和管理,保证集群的高可用性和可靠性。通过使用Redis集群分片的机制,可以实现数据的水平扩展和高性能的分布式存储。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Redis Cluster集群数据分片机制原理](https://download.csdn.net/download/weixin_38651165/12822944)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [redis集群分片原理详解](https://blog.csdn.net/nandao158/article/details/123715287)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值