如何实现Docker高级篇2中的分布式存储三种算法应用?

2026-05-24 00:331阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

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

如何实现Docker高级篇2中的分布式存储三种算法应用?

面试题:1亿条数据需要缓存,请设计这个缓存方案示例?

答案:单机单节点100%是不可行的。可采用分布式缓存。

那么用Redis如何落地?一般有三种方案:

1. 哈希取余分区;

2.一致性哈希;

3.轮询哈希(Roud Robin Hash)。

面试题:

1~2亿条数据需要缓存,请问如何设计这个缓存案例?

答:单机单台100%是不可能的。肯定是分布式缓存的。那么用Redis如何落地?

一般有三种方案:

哈希取余分区;一致性哈希算法分区;哈希槽分区。如下图:

大家好,我是凯哥Java(kaigejava),乐于分享,每日更新技术文章,欢迎大家关注“凯哥Java”,及时了解更多。让我们一起学Java。也欢迎大家有事没事就来和凯哥聊聊~~~

哈希取余分区:

对redis的key进行hash后和机器总数取余。公式:has(key)%N

这种分区算法的优点:

简单粗暴,直接有效。只需要预估好数据规划好节点。就能保证一段时间的数据支撑。使用HASH算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求,起到负载均衡+分而治之的作用。

缺点:

原来规划后的节点,进行扩容或者缩容就比较麻烦了。不管是扩容还是缩容,每次数据变更导致几点有变动,映射关系需要重新进行计算。在服务器个数固定不变的时候没问题。如果需要弹性扩容或者故障停机的情况下,原来的取模公式就会发生变化。此时地址经过某个redis机器宕机了。

阅读全文

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

如何实现Docker高级篇2中的分布式存储三种算法应用?

面试题:1亿条数据需要缓存,请设计这个缓存方案示例?

答案:单机单节点100%是不可行的。可采用分布式缓存。

那么用Redis如何落地?一般有三种方案:

1. 哈希取余分区;

2.一致性哈希;

3.轮询哈希(Roud Robin Hash)。

面试题:

1~2亿条数据需要缓存,请问如何设计这个缓存案例?

答:单机单台100%是不可能的。肯定是分布式缓存的。那么用Redis如何落地?

一般有三种方案:

哈希取余分区;一致性哈希算法分区;哈希槽分区。如下图:

大家好,我是凯哥Java(kaigejava),乐于分享,每日更新技术文章,欢迎大家关注“凯哥Java”,及时了解更多。让我们一起学Java。也欢迎大家有事没事就来和凯哥聊聊~~~

哈希取余分区:

对redis的key进行hash后和机器总数取余。公式:has(key)%N

这种分区算法的优点:

简单粗暴,直接有效。只需要预估好数据规划好节点。就能保证一段时间的数据支撑。使用HASH算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求,起到负载均衡+分而治之的作用。

缺点:

原来规划后的节点,进行扩容或者缩容就比较麻烦了。不管是扩容还是缩容,每次数据变更导致几点有变动,映射关系需要重新进行计算。在服务器个数固定不变的时候没问题。如果需要弹性扩容或者故障停机的情况下,原来的取模公式就会发生变化。此时地址经过某个redis机器宕机了。

阅读全文