Redis 分区

分区是分割数据到多个 Redis 实例中去,分区后,每个 Redis 实例只保存 key 的一个子集(一部分)。

分区的好处

  1. 通过利用多台计算机内存,可以存储更多的数据。
  2. 通过多核和多台计算机,提供更高的性能。
  3. 通过多台计算机和网络适配器,提供更强的传输能力。

分区的劣势

  1. 不支持多个 Key 的操作。
  2. 不支持多个 key 的事务操作。
  3. 分区后,处理数据变得复杂(要处理不同机器上的 rdb/aof 文件)。

分区类型

  1. 范围分区,是最简单的分区方式,比如从 id 1 到 100 的订单保存到分区 1,101 到 200 的订单保存到分区 2。不足是每增加区间范围都要维护一个映射表,要记得,哪个分区和哪个范围有联系。

  2. 哈希分区,比范围分区更好的方法,可以对任何 key 都适用,key 不需要是 object_name:这样的形式。

    1. Hash(key),用 hash 函数对 key 进行计算出一个整数。
    2. 对这个整数取模操作得到一个数值。
    3. 将上一步的结果映射到对应的实例中。

比如我们分区是 16 个,我们算出来的 hash 数值是 83084917

1
83084917 % 16 = 5

那么我们就应该把 key 存储到 实例 5 中。


如何学以致用,在哪些场景中应用Redis

《Go语言+Redis实战课》

Go语言+Redis实战课-课程大纲 《Go语言+Redis实战课》课程+优惠券合并照片
添加微信 公众号更多内容
wechat gzh