基于Python项目的Redis缓存消耗内存数据简单分析(附详细操作步骤)

Posted 学海无涯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于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项目的Redis缓存消耗内存数据简单分析(附详细操作步骤)

基于内存的类似redis的缓存方法

redis缓存

缓存数据库Redis之三:内存淘汰策略及优化

缓存数据库Redis之三:内存淘汰策略及优化

缓存数据库Redis之三:内存淘汰策略及优化