如何使用Docker安装Redis集群模式,实现亿级数据存储的哈希槽分区?

2026-05-21 00:361阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3535个文字,预计阅读时间需要15分钟。

如何使用Docker安装Redis集群模式,实现亿级数据存储的哈希槽分区?

背景:1~2亿条数据需要缓存,请设计存储案例?

问题描述:上述问题涉及阿帕奇P6~P7工程案例和场景设计类必考题目,一般业界有三类解决方案:

1.一致性哈希算法分区

2.哈希槽分区

3.哈希取余分区

背景

1~2亿条数据需要缓存,请问如何设计存储案例? 上述问题阿里P6~P7工程案例和场景设计类必考题目,一般业界有三种解决方案^: 2、一致性哈希算法分区 3、哈希槽分区

1、哈希取余分区

2亿条记录就是2亿个k,v,我们单机不行,必须要分布式多机,假设有3太机器构成一个集群,用户每次读写操作都是根据公式:hash(key)%N个机器台数,计算出哈希值,用来决定数据映射到哪一个节点上 优点: 简单粗暴,直接有效,只需要预估好数据,规划好节点,例如3台、8台、10台,就能保证一段时间的数据支撑。使用Hash算法让固定的一部分请求落到同一台机器上,这样每一台服务器固定处理一部分请求(并维护这些请求信息),起到负载均衡+分而治之的作用。 缺点: 原来规划好的节点,进行扩容或者缩容就比较麻烦了,不管扩容还是缩容,每次数据变动导致节点有变动,映射关系就需要进行重新计算,在服务器个数固定不变时没有问题,如果需要弹性扩容或者故障停机的情况下,原来的取余公式就会发生变化:hash(key)/3会变成hash(key)/?。此时,经过某个redis机器宕了,由于台数数量发生变化,会导致hash取余全部数据重新洗牌。 我们来举个例子: 假设请求1的取余结果为:第一台机器,我们把数据存到了第一台机器,如果第一台机器宕机时,我们要去第一台机器查询我们请求1的数据时,是查询不到的。
阅读全文

本文共计3535个文字,预计阅读时间需要15分钟。

如何使用Docker安装Redis集群模式,实现亿级数据存储的哈希槽分区?

背景:1~2亿条数据需要缓存,请设计存储案例?

问题描述:上述问题涉及阿帕奇P6~P7工程案例和场景设计类必考题目,一般业界有三类解决方案:

1.一致性哈希算法分区

2.哈希槽分区

3.哈希取余分区

背景

1~2亿条数据需要缓存,请问如何设计存储案例? 上述问题阿里P6~P7工程案例和场景设计类必考题目,一般业界有三种解决方案^: 2、一致性哈希算法分区 3、哈希槽分区

1、哈希取余分区

2亿条记录就是2亿个k,v,我们单机不行,必须要分布式多机,假设有3太机器构成一个集群,用户每次读写操作都是根据公式:hash(key)%N个机器台数,计算出哈希值,用来决定数据映射到哪一个节点上 优点: 简单粗暴,直接有效,只需要预估好数据,规划好节点,例如3台、8台、10台,就能保证一段时间的数据支撑。使用Hash算法让固定的一部分请求落到同一台机器上,这样每一台服务器固定处理一部分请求(并维护这些请求信息),起到负载均衡+分而治之的作用。 缺点: 原来规划好的节点,进行扩容或者缩容就比较麻烦了,不管扩容还是缩容,每次数据变动导致节点有变动,映射关系就需要进行重新计算,在服务器个数固定不变时没有问题,如果需要弹性扩容或者故障停机的情况下,原来的取余公式就会发生变化:hash(key)/3会变成hash(key)/?。此时,经过某个redis机器宕了,由于台数数量发生变化,会导致hash取余全部数据重新洗牌。 我们来举个例子: 假设请求1的取余结果为:第一台机器,我们把数据存到了第一台机器,如果第一台机器宕机时,我们要去第一台机器查询我们请求1的数据时,是查询不到的。
阅读全文