专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

关于Redis缓存预热的思考

系统上线时,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题。

这里我考虑2个问题:

A、哪些数据需要预热?

B、如何预热?

关于问题A,根据不同的业务系统有不同的方法。

1、 可以将已知的热门数据加载到Redis,这种方法适合于基本不变化的数据;
2、 使用redis-faina(https://github.com/facebookarchive/redis-faina.git)实时监控Redis热key,但是因为redis-faina是通过调用Redis的monitor命令来实现的,可能降低Redis50%左右的性能,所以需要根据实际情况评估;
3、 在proxy层,对每个请求进行收集上报,弊端就是需要修改proxy的代码,需要考虑开发成本和稳定性问题;
4、 Redis-cli –hotkyes 查询热点key,只适用于缓存淘汰策略是lfu的时候(https://yq.aliyun.com/articles/278922);
5、 TCP消息抓包,例如ELK体系下的packetbeat插件(https://www.elastic.co/guide/en/beats/packetbeat/current/index.html),可以实现对Redis、MySQL等众多主流服务的数据包抓取、分析、报表展示;
6、 客户端上报,例如nginx+lua将访问量上报到kafka中,然后进行统计

关于如何预热:

找出了热点key之后,再根据自己的业务逻辑,到DB中查询数据填充到Redis中去。不过既然考虑预热,那么访问量、数据量都会很大,因此要考虑并行(提高预热速度)+ 限速(并发量太大的话,DB也处理不过来)。

参考链接:

https://jzuekk.com/page/redis_6.html

https://elasticsearch.cn/topic/PacketBeat

文章永久链接:https://tech.souyunku.com/48038

未经允许不得转载:搜云库技术团队 » 关于Redis缓存预热的思考

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们