Redis 是一个开源、高性能的Key-Value数据库,被广泛应用在服务器各种场景中。本文介绍几个查看Redis内存信息的命令,包括常用的info memory
、info keyspace
、bigkeys
等。
查看Redis内存使用
info
命令用于监控Redis运行情况,其中 info memory
可以查看Redis内存使用统计信息:
redis-cli info memory
命令输出结果如下图:
前几个字段信息最为重要,其含义分别为:
属性名 | 属性说明 |
---|---|
used_memory | Redis 分配器分配的内存总量,也就是内部存储的所有数据内存占用量 |
used_memory_human | 以可读的格式返回 used_memory |
used_memory_rss | 从操作系统的角度显示 Redis 进程占用的物理内存总量 |
used_memory_rss_human | used_memory_rss 的用户宜读格式的显示 |
used_memory_peak | 内存使用的最大值,表示 used_memory 的峰值 |
used_memory_peak_human | 以可读的格式返回 used_memory_peak的值 |
查看Key统计信息
Keys
命令性能很不好,线上使用该命令简直是业务克星,因此建议生产环境屏蔽Keys
命令。如果只是想查看Key统计信息,可以使用另外两个命令:
1. dbsize
:查看当前数据库
的有效key数量
2. info keyspace
:info
命令给出Redis实例各个数据库的Key信息
两个命令输出如下:
可以看到,info keyspace
命令给出更全的统计信息。
查看占用内存最大的Key
查看数据库中哪个Key占用内存最大,可以使用--bigkeys
参数:
redis-cli -n 5 --bigkeys
命令输出如下:
运行结果按照从小到大的顺序给出了内存占用最高的10个Key。上图结果中,最大Key的值占用内存达到300多K。
对于string类型,bigkeys的输出是正确的,然而list、sets等数据结构,bigkeys的计算方式可能存在问题,实践中请注意着点。
此外--bigkeys
参数还给出了Keys信息的统计。上述输出中,所有的数据都是string类型,没有list、sets等类型数据。