初学乍练redis:使用rdr查看Redis key内存使用

2022-05-07 13:28:29 浏览数 (1)

一、问题提出

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

二、安装RDR

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

1. 安装go

代码语言:javascript复制
yum -y install go
# 确认go语言环境和版本
go env
go version

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

代码语言:javascript复制
go get github.com/xueqiu/rdr

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

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

代码语言:javascript复制
/root/go/bin/rdr show dump.rdb

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

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

参考:

  • Redis大key图形化统计及展示
  • redis占用内存诊断过程
  • Centos Linux 使用Yum安装Go和配置环境

0 人点赞