一 . 前言
在 Redis 集群里面主要涉及到两种 Hash 算法 :
- 一种是一致性哈希 , 这种算法在 适用dis Cluster方案中并没有实现,主要在外部的代理模式 (Twemproxy)
- 一种是 Slot 哈希槽算法 ,这种算法就是 Cluster 的核心算法
所以谈到这个问题的时候,不能只讲一部分。在 Redis 3.0 之前
,Redis 是没有集群方案的,在这个时期实现 Redis 的 分布式
主要由客户端自行实现
。 一般的实现方式就是一致性 Hash。
而 Redis 3.0 之后
,Redis 实现了 Cluster 集群,也就采用了相对而言更简洁的 Slot 槽方式。
第一阶段 :单节点到多节点集群
之前也聊过,单节点的性能是有瓶颈的。当单节点达到瓶颈
后,构建集群
就是最合理,最经济的用法。
这就衍生出几个问题 :
- 单节点的时候,直接把数据往一个节点丢就行,查询也是一个节点去处理查询
- 集群后,
数据应该放在哪个节点
? 是全部存一份还是分开存? - 集群后,
查询应该查询哪个节点
? 不可能全量查询吧 , 一个一个节点查ÿ