Redis集群详解之-Cluster

本文详细介绍了Redis Cluster,包括其数据分片机制,使用哈希槽而不是一致性哈希,以及节点间的端口配置。此外,文章讨论了Redis Cluster的故障恢复策略,如主从复制和故障转移条件,强调了在特定情况下可能的数据丢失风险,并提出了避免数据丢失的方法。最后,提及了Redis Cluster并不保证强一致性,但在分布式锁的帮助下,可以提高数据一致性。
摘要由CSDN通过智能技术生成

Redis 集群介绍

Redis因为具有丰富的数据结构和超高额性能以及简单的协议,使其能够很好的作用为数据库的上游。但是当数据量变大的时候(如数据达到千万级别时),会受限以多个地方,单机内存有限、单点问题、动态扩容问题等。
为了解决上面的问题,Redis的集群方案就显得比较重要了。使用Redis集群通常有三个途径;

  • 官方提供的 Redis Cluster
  • 通过Proxy分片
  • 客户端分片(Smart Client)

本文主要介绍一下官方提供的 Redis Cluster,Redis Cluster 是在Redis 3.0开始支持的,3.0主要是更新了多机方面的功能,在5.0之前Redis Cluster 主要是采用 Redis提供的 redis-trib.rb(Ruby实现的脚本,需要安装相应的依赖环境)这个管理工具。5.0版本开始支持 --cluster 参数来进行管理。

Redis Cluster 数据分片

Redis Cluster 并没有使用一致性hash,而是引用了一个叫哈希槽的概念。
Redis Cluster 中有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽。集群的每个节点分配一部分的哈希槽,这样有一点很方便就是在增加和移除的时候,只需要分配相应的哈希槽就可以了。
在单命令执行下和单机Redis并无区别,客户端写入命令,由Redis Cluster计算当前key属于哪个槽点然后返回相应数据。但是多命令的情况下(如求集合的交集)有可能多个key不在同一个槽点里,可以采用{}来设置需要多命令执行的key。{key}:xxx它只对括号里面的进行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值