REDIS Hash 槽 与 一致性hash

36b0ffd5ad019411007b408fa1894304.png

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共600人左右 1 + 2)。

在REDIS 的cluster中与标准的standalone Redis 比较的话,他属于一个分布式的数据库解决方案,通过他可以应用数据分区和 sharding,这里的分片意味着数据在多个REDIS 实例中共享。REDIS 在3.0引入了REDIS CLUSTER ,并且提供了数据的同步,复制,并且在部分节点DOWN 掉后提供可以持续访问的特性。

但是这并不是说REIDS 的CLUSTER 比REDIS 单机版本就要好,首先如果你使用了REDIS CLUSTER 你只能使用 0 库,而REDIS单机中的 0-15 库你是无法进行选择使用的。同时不少在REDIS 单机中可以使用的命令是无法在REDIS CLUSTER 中使用的,如 SELECT , MSET MGET 等,而这些都与今天要提到的 槽 ,SLOT 有关。

aa4189d2a293e54c5cb03060249e5fa9.png

Redis集群使用一种称为一致性哈希的复合分区形式,计算特定键应该分配给哪个Redis实例。这个概念在Redis集群中被称为哈希槽。密钥空间在集群中的不同主节点之间进行分区。它被分成16384个插槽,有效地设置了16384个主节点的集群大小的上限。哈希槽是应用于密钥的CRC-16哈希算法,然后使用16384计算模。

HASH_SLOT = CRC16(key) mod 16384

每个主节点都被分配了一个hash 槽的范围,每个键值都会落到对应的hash 槽的范围内,基本上,Redis选择16384个插槽,因为16384个消息只占用2k,而65535则需要8k。对于集群规模的设计考虑,集群最多支持1000个分片。16384是一个比较好的选择。需要保证在最大簇大小和槽位分布均匀的情况下,每个分片的平均槽位数不是太大。并且节点在增加和减少都不会影响正常的业务工作,槽位会重新计算到对应的 INSTANCE 中,重新分布。

1ce290d2d24992145bd771a293b184bb.png

而如果访问信息中,访问的键值不在当前的REDIS INSTANCE  中将重新定向到对应的正确的槽位的 REDIS INSTANCE 中。那么hash 槽在REDIS CLUSTER 上的应用是使用了一致性HASH 的方式来进行数据的            

hash 槽本身是REDIS 集群背后的管理 KEY的逻辑,一致性hash 是基于分布式数据库在数据传输中保证数据最终传输的数据一致性而制定的一种实现的方法。一致性hash 的算法主要的部分就是使用了 哈希函数来进行槽位中的键值的划分。

36b25f9623b2d585d4e6a4a8f01913b2.png

那么基于这样的算法,必然产生HASH 倾斜的情况,或者有概率发生HASH 倾斜,那么如果发生了HASH 倾斜怎么去消除所带来的访问热点的问题。

6875d9b61c58a2db20b98db757cba6f4.png

HASH 倾斜产生的问题

1   热点KEY ,在热点KEY 存在的REDIS INSTANCE 中会导致存储的这个节点的CPU 升高,影响该分片INSTANCE 中的其他KEY 的访问。

2  大多数的KEY 落入了某个REDIS INSTANCE 中,导致数据存储的不均衡

在这样的情况下,我们可以做的

1  提升某个INSTANCE REDIS 的硬件规格,提高性能应对

2  增加分片的节点,将数据尽量更加分散的打开进行处理

3  根据业务的使用REDIS 的情况,进行相关的使用REDIS 的方案的变化根本解决问题

1f3c3c4ca1045dd16a3e15762d098c1f.png

——————————————————————————————

本期咱们来说说什么是银耳奥迪,奥迪audi, 很多人看不起买奥迪的人,认为是买不起 奔驰宝马的那类人,嗯其实狭隘了。奥迪除了  A3 A4 A5 A6 A8 ,Q2 ,Q3 Q,5 Q7 , 其实还有一类 奥迪,你是买不起,你也开不起的,买不起是,开不起的原因是,你的心脏受得了受不了。

这类奥迪是银耳奥迪,这就是这种车明显的标记,两个后视镜的颜色是不跟随你的车的颜色变换的,颜色永远是银色,哪怕是你的车是黑色的,他的后视镜也是银色的。

这类车的尾标是 S3、S4、S5、S6、S7、S8、TTS、SQ5和SQ7,以及更贵的 西装暴徒  RS 3 RS 4 RS 5 RS 6 RS7 

需要注意的是,RS 系列根本不是奥迪一起生产,就是一款贴标车,他的生产单位是 quattro ,对就是那个大家都知道的 跨出哦,RS 系列的车是单独的公司 quattro,单独的生产线。 价格也是喜人的,大部分人只能看看就好。这些车的发动机 动辄就是 3.0T  ,4.0T

a0388dcf698fa84b8e68eae8be232265.png

84aa9a4e1b15f6e0e80bca37a596ee9b.png

此外,大众集团,有一个喜好,就是 瓦罐,瓦罐在 奥迪里面也有 疯狂的 RS4 Avant

e96cd4cade9ddf7969dba156a03f1ae9.png

大家熟悉的口头车型,如法拉利,兰博基尼,有时也会栽倒 AUDI 的手里,俗话说,屠牛宰马是奥迪,指的就是这类RS 车型。

为啥这么厉害,咱们来看看配置你就知道,普通的外观下,藏着一个个野兽。所以,现在你还觉得开奥迪 S  RS 系列的是买不起奔驰宝马的吗?笑话

fbe1e785b777c07f244441d770dab647.png

48094cfb1fcdcaf0b99b29d75fb5ed6c.png

629117a957113abd8a2a1890b9dc8879.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值