使用rdr查看Redis key内存使用

一、问题提出

有一个生产系统的Redis实例内存使用超限引发报警,需要查看各个key所使用的内存分布情况,以便采取进一步的措施。

二、安装RDR

Redis原生并没提供查看单个Key的内存占用情况的命令。经过简单快速地调研,决定试一下RDR(Redis Data Reveal),主要原因是想体验一下其图形化的表示。RDR是用go语言开发的,安装过程如下。

1. 安装go

yum -y install go
# 确认go语言环境和版本
go env
go version

2. 一键式自动获取、编译RDR

go get github.com/xueqiu/rdr

结果是生成一个名为rdr的可执行文件,只需要将该可执行文件直接拷贝到其它机器上执行,不再依赖于任何其它环境。

三、用rdr查看key的内存使用情况

/root/go/bin/rdr show dump.rdb

我们的rdb文件大小有3G,600多万个key,在我的虚拟机上执行分析的时间约为5分20秒。按返回的提示,在浏览器中查看结果如下。

RDR的工作方式是对rdb文件进行解析,只要有rdb文件就行,并不需要Redis实例。RDR 可以非常方便的对 Reids 的内存进行分析,了解一个 Redis 实例里都有哪些 key,哪类 key 占用的空间是多少,最耗内存的 key 有哪些,占比如何,非常直观。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券