基于Python项目的Redis缓存消耗内存数据简单分析(附详细操作步骤)
Redis:一个高性能的key-value数据库。支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用;提供string、list、set、zset、hash等数据结构的存储,并支持数据的备份。
本文适合使用的场景:当一个项目中Redis缓存的数据量逐渐增大,Redis缓存的数据占用内存也会越来越大,而且其中有很多很可能是价值不大的数据。由于Redis是一个key-value数据库,所以对其中的数据进行分析没有mysql数据库那么直观。那么此时,我们需要寻找工具来分析Redis缓存中的哪些数据占用内存比较大,并结合项目实际的情况来分析这些数据存储的价值如何?从而作出具体删减数据的方案,来解放服务器端宝贵的内存资源。
本文需要采用的工具:Rdbtools和MySQL。
Rdbtools:使用Python语言编写的,可以解析Redis的dump.rdb文件。此外,提供以下工具:
(1)跨所有数据库和密钥生成数据的内存报告
(2)将dump文件转换为JSON
(3)使用标准diff工具比较两个dump文件
具体源码GitHub链接:https://github.com/sripathikrishnan/redis-rdb-tools/
MySQL:一种开源且比较轻量级的关系型数据库。本文使用Rdbtools解析出Redis的dump.rdb文件并生成内存报告*.csv文件(PS:下文操作文件为result_facelive_hot.csv),然后把该文件导入到MySQL数据库中,最后通过编写具体的SQL语句脚本生成想要的数据分析结果的*.csv文件(PS:下午SQL脚本中生成的文件名为redis_key_storage.csv)
参考资料:
1.使用代码完成csv文件导入Mysql(https://blog.csdn.net/quiet_girl/article/details/71436108)
2.使用rdbtools工具来解析redis dump.rdb文件及内存使用量(http://www.ywnds.com/?p=8441)
3.MySQL必知必会:组合查询(Union)(https://segmentfault.com/a/1190000007926959)
相关文章
- Python 异步 redis
- Python爬虫之使用正则表达式抓取数据
- Python 操作 MySQL 数据库
- c#实例化继承类,必须对被继承类的程序集做引用 .net core Redis分布式缓存客户端实现逻辑分析及示例demo 数据库笔记之索引和事务 centos 7下安装python 3.6笔记 你大波哥~ C#开源框架(转载) JSON C# Class Generator ---由json字符串生成C#实体类的工具
- Python中使用Redis的批处理工具pipeline(这种方法从底层思考效率还是低于“订阅发布机制”)
- Python redis的订阅发布机制(publish、pubsub)
- redis实战 -- python知识散记
- [Python] SQLBuilder 演示样例代码
- 火遍全世界的Python,为啥这么牛?
- 零散逻辑验证不再烦恼:基于Python和Redis的实践
- Python 中的作用域
- (转)利用Auto ARIMA构建高性能时间序列模型(附Python和R代码)
- python 代码库之uni编码转化为unicode的字符串
- Python itertools.combinations 和 itertools.permutations 等价代码实现
- Python使用Redis数据库
- Python数据可视化神器pyecharts
- Python .format()的详细使用(英文版)
- linux下python操作的一些命令
- 学习笔记(59):Python实战编程-Graphics
- Python 图片匹配 之 特征匹配
- Python入门学习笔记第五章——if条件句~~~
- [Python] count()方法