redis中的数据占用内存大小分析

如今越来越来的系统中使用redis作为缓存系统,但是随着用户量的增长,业务数据不断增多,redis服务器的内存空间有可能会到瓶颈了,及时观察redis中的各种键内存占用多少,会方便我们评估何时升级redis服务器规格,以及对于是否需要进行程序优化来设计合理的存储结构都会有很大帮助,下面给大家介绍两款工具rdrredis-rdb-tools,可以很好的满足我们的需要

redis中的数据占用内存大小分析

redis内存分析

rdr工具的使用

RDR(redis data reveal)是一个用于解析redis rdb备份文件的工具。基于golang实现,可以实现根据rdb文件生成一份详细的内存占用数据报告,并且能在本地启动一个server进程,在网页中呈现出美观的数据报告

详细使用参考官方仓库:https://github.com/xueqiu/rdr

安装

rdr提供了linux/OSX/Windows下的可执行文件,直接点击下载,我这里演示Windows下的使用方式

redis中的数据占用内存大小分析

下载下来后存储到d:/dev路径下

redis中的数据占用内存大小分析

使用方式

1.首先要去redis服务器端将rdb文件复制到本地,为了方便,我将rdb文件放到了rdr工具所在目录

redis中的数据占用内存大小分析

这里再说下redis rdb文件该怎么找到,通过查看redis服务器配置文件redis.conf,搜索dbfilename可以快速定位到该配置,按照路径就可以找到redis rdb备份文件了

redis中的数据占用内存大小分析

rdb config


2.在rdr工具所在的路径下打开命令行窗口,执行指令

rdr-windows.exe show dump.rdb
redis中的数据占用内存大小分析

可以看到指令执行成功后,在本地启动了server,监听端口8080


3.打开浏览器,访问http://localhost:8080/,能看到详细的内存占用数据报告,包括键数量、不同的数据类型、元素计数等

redis中的数据占用内存大小分析


不过通过网页版的数据报告中有个小问题,对于redis中的不同数据库没有明显的区分展示~,混在一起,不是太清晰

redis-rdb-tools工具的使用

采用python实现的rdb文件解析工具,这个可以支持单个key的内存占用情况查询

详细使用参考官方仓库:https://github.com/sripathikrishnan/redis-rdb-tools/

安装

1.安装python环境,我这里安装了python2.7.15

redis中的数据占用内存大小分析

2.通过pip安装redis-rdb-tools

pip install rdbtools python-lzf

我这里python-lzf库没有安装成功,不过不影响实际使用,这个库是为了加速rdb文件解析速度~

使用方式

3.安装完成后就可以在命令行中使用了,输入指令生成内存报告文件

rdb -c memory dump.rdb -f redis-memory.csv

等待一段时间,命令阻塞执行完成后,就会在-f参数指定的路径下生成对应的文件
用excel打开生成的csv文件,可以看到详细的统计结果,包含了所有数据库下所有key的内存占用情况~

redis中的数据占用内存大小分析

redis-rdb-tools中还带了一个很有用的命令,能帮助我们直接查询单个key的内存占用情况,命令格式如下

redis-memory-for-key -s redis服务器地址 -p redis服务器端口 -a redis服务器密码 -d redis数据库序号 key名称

执行测试下效果,可以看到命令执行完成后,直接回显出指定key对应的内存占用情况了

redis中的数据占用内存大小分析

注意该操作在生产环境下慎用,视key大小情况再行决定是否执行,有可能会阻塞执行很长时间才能计算出结果~

展开阅读全文

页面更新:2024-03-06

标签:数据   路径   内存大小   命令   内存   情况   服务器   文件   工具   报告   详细

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top