【Redis】Redis 缓存热点引发的思考

1. 背景

一开始并没有打算梳理redis的相关内容,因为在一篇文章中看到关于热点问题的处理,心中有一些疑惑,内容如下:

缓存热点:

对于特别热的数据,如果大部分甚至所有的业务都命中同一份缓存数据,则这份数据所在缓存服务器压力就很大,例如,某明星微博发布“我们”来宣告恋爱了,则短时间内有成千上万的用户都来围观。

缓存热点解决方案:

就是复制多份缓存,将请求分散到多个缓存服务器上,减轻缓存热点导致的单台缓存服务器压力,以新浪微博为例,对于粉丝超过100万的明星,每一条微博都可以生成100分缓存,缓存的数据都是一样的,通过缓存key里面加编号进行分区,每次读缓存都随机读取其中某份缓存。

解决思路是没有问题的,是通过备份相同的数据到多台缓存服务器中,缓解分散单台服务器的压力,我的疑惑是"通过缓存key里面加编号进行分区"这种方式是怎么确保使需要保存的数据都分散到不同的服务器呢?redis集群根据key进行hash散列算法,最终映射的是槽位,不同的缓存服务器分别管理的是一些列表槽位,怎么保证通过key计算出来的槽位值正好不在同一台机器上呢?

带着这个疑问点,开始了redis复制,哨兵,集群内容的整理。

猜你喜欢

转载自blog.csdn.net/qq_41893274/article/details/114014482