redis缓存使用中的热key问题

热key问题

何为热key问题?

在Redis中,访问频率高的key称为热点key,当某一热点key的请求到Server主机时,由于请求量特别大,导致主机资源不足,甚至宕机,影响正常的服务

热key问题产生原因

1.用户消费的数据远大于生产的数据,比如热卖商品、热点新闻、热点评论等,这些典型的读多写少的场景会产生热点问题

2.请求分片集中,超过单Server的性能极限,比如 固定名称key,哈希落入一台Server,访问量极大的情况,超过Server极限时,就会导致热点Key问题的产生

热key的危害

1.流量集中,达到物理网卡上限,影响其他key的访问。

2.请求过多,缓存分片服务被打垮,不能通过扩容解决,且不能发挥集群多分片的优势。

3.缓存击穿,可能打到DB,引起业务雪崩。

如何找到热key?

1.凭借业务经验,进行预估哪些是热key

2.客户端统计收集,本地统计或者上报

3.如果服务端有代理层,可以在代理层进行收集上报

如何解决热key问题?

1.增加分片副本,分担读流量

2.热key备份,比如key,备份为key1,key2……keyN,同样的数据N个备份,N个备份分布到不同分片,访问时可随机访问N个备份中的一个,进一步分担读流量

3.使用本地缓存,发现热key后,将热key对应数据加载到应用服务器本地缓存中,访问热key数据时,直接从本地缓存中获取,而不会请求到redis服务器。

参考资料:

http://tigcms.jd.com/details/S11dBQ5M7.html
https://help.aliyun.com/document_detail/67252.html
https://www.cnblogs.com/rjzheng/p/10874537.html

你可能感兴趣的:(redis缓存使用中的热key问题)