redis之集群分片

1.什么是redis集群

Redis集群是一种Redis的高可用和扩展性的技术方案。它通过将数据分布在多个节点(片)上,每个节点(片)负责数据集的一部分,从而可以扩展存储容量和并发处理能力,解决了单个Redis实例的内存和并发限制问题
在这里插入图片描述

2.redis集群能干嘛

(1)数据分布式存储:Redis集群可以将数据分布在多个节点上,每个节点负责存储数据集的一部分,从而提供更高的存储容量和并发处理能力。
(2)高可用性:通过配置多个主节点和从节点,Redis集群可以实现故障转移和高可用性。当主节点发生故障时,从节点可以被提升为新的主节点,确保服务的持续可用性。
(3)读写分离:在Redis集群中,每个主节点都可以处理读和写请求,从而提供更高的响应能力。同时,可以从多个从节点中读取数据,进一步提高读取性能。
(4)容错性:Redis集群提供了容错机制,可以通过配置多个从节点来确保数据的持久性和可靠性。当主节点发生故障时,从节点可以自动提升为新的主节点,继续提供服务。
(5)自动分片:Redis集群通过哈希槽来决定数据存储的位置,自动将数据分片存储到不同的节点上,简化了数据分片的操作。
(6)扩展性:Redis集群可以轻松地通过增加更多的节点来扩展存储容量和并发处理能力,满足不断增长的性能需求。

3.redis哈希槽(slot)

redis集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放到哪个槽,集群的每个节点负责一部分哈希槽
例如3个redis实例的集群
在这里插入图片描述

4.redis分片

什么是分片?
使用redis集群时,我们会将存储的数据分散到多台redis实例(机器)上,这就称为分片。简言之,每个redis实例都被认为是整个数据的一个分片
如何找到给定key的分片?(如何知道这个key在哪台redis实例上)
redis内部提供的哈希槽算法CRC16(key) mode 16384

5.哈希槽+分片的优势

方便集群节点的扩容和缩容
在这里插入图片描述

6.slot槽位映射(redis分布式存储)的3种解决方案

(1)哈希取余分区
在这里插入图片描述
优点:简单粗暴,直接有效,使用hash算法让固定的一部分请求落到同一个redis实例上,这样每台redis服务器固定处理一部分请求,起到负载均衡+分而治之的作用
缺点:扩容和缩容相当麻烦,当redis节点数量变更后,映射关系全部需要重新计算
(2)一致性哈希算法分区
算法构建一致性哈希环在这里插入图片描述>在这里插入图片描述
redis服务器ip节点映射
在这里插入图片描述
key的落键规则
在这里插入图片描述
在这里插入图片描述
一致性哈希算法分片的优缺点
优点:加入或删除节点,只会影响哈希环中顺时针方向的相邻节点,对其他节点无影响
缺点:数据的分布和节点的位置有关,因为这些节点不是均匀分布在哈希环上的,所以数据在进行存储时达不到均匀分部的效果(存在数据倾斜问题)
(3)哈希槽分区
在这里插入图片描述
在这里插入图片描述

7.redis集群不保证数据的强一致性

redis集群不保证数据的强一致性,这意味着在特定的条件下,redis集群可能会丢掉一些被系统收到的写命令

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值