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

 我来答
青柠姑娘17
2022-06-03 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6517
采纳率:100%
帮助的人:36.8万
展开全部

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

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

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

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

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

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


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

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


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


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

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

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

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

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

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

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

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

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

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式