虽然Redis4.0以后提供了memory命令进行内存查询,但是对于存在大量业务key来说可能不够方便,只看统计结果又不够详细不好定位具体业务,选择使用rdbtools来进行分析。
运维提供了阿里云Redis自动备份文件 backupfile.rdb 。当然也可以自行到Redis目录下获取 dump.rdb 文件。
我这里使用的是linux环境,确保python及pip已经正确安装。
rdbtools项目地址: https://github.com/sripathikrishnan/redis-rdb-tools
rdbtools安装,以pip3为例:
rdbtools生成内存报告:(更多使用方法可以参考官方文档)
执行内存分析后CPU会跑满,耐心等待即可。我这里630M共计500万个key的rdb文件运行了接近10分钟。
执行完成后在当前目录文件生成了内存报告文件 memory.csv 。
由于生成的内存报告文件 memory.csv 可能很大,直接打开进行分析处理存在限制,将数据导入MySQL。
创建表:
此表字段与csv文件字段一一对应,然后将csv文件数据导入该表。
最后通过排序以及key的模糊查询等手段,即可完成Redis内存分析。
目前我知道的几种从mysql导入数据到mongodb的方法,如果发现新方法会继续添加。1)自己写一个程序,从mysql select数据,然后调用insert,插入数据到mongodb中。
2)通过mysql工具将数据导出为csv/json格式的文件,然后使用mongodb自带的mongoimport导入数据。
(当数据量非常大的时候,可以pre-spliting + multi-mongoimport加快导入速度)
3)通过工具MongoVUE(带界面的)从mysql直接导数据到mongodb中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)