[缓存中间件] 缓存分片策略

在使用分布式缓存的时候,可以将数据分区保存在不同节点上,以扩大存储能力。

另外一种思想是不同节点备份相同数据,以提高读响应速度(如redis主从模型)。

以下是集中分片策略(算法)

1.range Based算法

按照关键值将数据划分到不同区间,每个缓存节点保存一个区间内的数据,需要保证关键值的连续性和分布均匀。

2.哈希算法

range based算法的改进,将数据的key或其他关键值进行哈希计算之后取模,每个节点分别保存一个区间内的数据。

其优势在于简单,劣势在于难以增加新的节点(意味者需要对旧节点进行变动)。

3.一致性哈希算法

将数据映射到首位相接的哈希环上(依然采取取模的办法)。

将服务其计算哈希值映射到哈希环上。

将数据按照key或其他关键值哈希计算取模,保存到顺时针方向最接近的服务器上。

若有新的服务器节点加入,只会影响新节点顺时针方向第一个节点,需要进行数据的迁移。

其优点在于:

平衡性,即结果会被尽可能分布地存放到所有缓冲当中(这取决于哈希算法的性质)。

单调性,有新的缓冲区(节点)加入时,尽量保证原有数据的位置不改变(不会被映射到其他缓冲区)。

其缺点在于:

分散性,当终端希望控制哈希过程将不同内容映射到相同缓冲上时,往往难以达到目的(因为哈希算法的随机性)。

负载,即不同终端可能将相同内容映射到不同的缓冲区,导致浪费缓存空间。

posted @ 2021-10-26 15:32  Cheung-10  阅读(28)  评论(0)    收藏  举报