【十九】redis之Cluster数据分布概述
redis cluste在3.0中有了。
数据分布
1.顺序分布
对比
分布方式 | 特点 | 典型产品 |
哈希分布 |
数据分散度高 键值分布业务无关 无法顺序访问 支持批量操作 |
一致性哈希Memcache Redis Cluster 其他缓存 |
顺序分布 |
数据分散度易倾斜 键值业务相关 可顺序访问 不支持批量操作 |
BigTable HBase |
2.哈希分布:
1.对节点数取余,是在客户端分片。优点简单。缺点:扩容影响太大!添加节点的时候整个数据会做很多偏移。3个节点扩容添加1个节点,会发生80%的数据迁移。
如果用这个中方式做数据分布,扩容的时候建议使用多倍扩容。比如3个节点,扩容的时候,再添加3个节点,这样只会发生50%的数据迁移。
不建议使用这种古老的数据分布方式。
2.一致性hash
原理,数据做成token环,为每一个节点分配一个token,key做了hash后会落在两个node2之间,顺时针找离它最近的节点。是在客户端分片。节点比较多的时候建议使用这种方式。节点伸缩的时候只影响临近的节点,还是要使用多倍扩容,不然会数据倾斜。
3.虚拟槽分区
这就是redis cluster使用的数据分布方式。
预设虚拟槽:每个槽映射一个数据子集,一般比节点数大。
由服务端管理节点、槽、数据的关系。