安装redis集群
(cluster(集群)模式-docker版哈希槽分区进行亿级数据存储)
思考:
1、 面试题:1~2亿条数据需要缓存,请问如何设计这个存储案例?
--上述问题阿里P6~P7工程案例和场景设计类必考题目,一般业界有3种解决方案
(顺序由易到难)(第一种)
(1)哈希取余分区
2亿条记录就是2亿个kv,我们单机不行,必须要分布式多机。
(a)公式
假设有3台机器构成一个集群,用户每次读写操作都是根据公式:hash(key)%N个机器台数,计算出哈希值,用来决定数据映射到哪一个节点上。

(b)优点
简单粗暴,直接有效,只需要预估好数据规划好节点。
例如3台、8台、10台,就能保证一段时问的数据支撑。使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息)起到负载均衡+分而治之的道理。
(c) 缺点
原来规划好的节点,进行扩容或者缩容就比较麻烦。
不管扩缩,每次数据变动导致节点有变动、映射关系需要重新进行计算,在服务器个数固定不变时没有问题,如果需要弹性扩容或故障停机的情况下,原来的取模公式就会发生变化:Hash(key)3会变成Hash(key)/?。此时地址经过取余运算的结果将发生很大变化,根据公式获取的服务器也会变得不可控。
例如某个redis机器宕机了,由于台数数量变化,会导致hash取余全部数据重新洗牌。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程