Redis缓存容量怎么查?实操教你快速搞定缓存大小查询
- 问答
- 2026-01-12 02:13:18
- 3
想知道你的Redis服务器用了多少内存,还剩多少空间,就像检查手机还剩多少存储一样,是日常运维中非常基础又重要的事情,下面就用最直接的方法,一步步教你怎么查。
第一部分:最直接的方法——使用Redis内置命令
查Redis的容量,最权威的信息来源就是Redis服务器本身,你需要连接到你的Redis服务器,不管你是用命令行工具 redis-cli,还是用一些图形化的管理工具(比如RedisInsight),核心都是执行下面几个命令。
核心命令:INFO Memory
这是最全面、最详细的方法,当你连接到Redis后,输入命令 INFO Memory,它会像瀑布一样列出一大堆关于内存使用的信息,别被这么多信息吓到,我们只需要关注其中几个关键指标就行,根据Redis官方文档对INFO命令的解释,关键指标如下:
used_memory: 这是最重要的数字,它表示Redis实际已经分配并使用了的字节数,简单说,就是你所有缓存数据(键值对)占用的总内存大小,这个数字通常以字节为单位,看起来会很长,你可以心算一下,大概1MB约等于100万字节。used_memory_human: 这是上面used_memory的“人类友好”版本,Redis会很贴心地帮你转换成KB、MB、GB这样的单位,45G,一眼就能看懂,不用自己计算。used_memory_peak: 这个表示Redis自启动以来,内存使用的峰值,这个值很有用,可以帮助你了解你的业务最高峰时大概需要多大的内存,为扩容提供参考。maxmemory: 这是你为Redis配置的最大内存上限,如果这个值配置为0,表示没有限制,Redis会一直使用直到撑满服务器物理内存(这可能很危险),通常我们都会设置一个上限。maxmemory_policy: 当内存使用达到maxmemory上限时,Redis采取的淘汰策略,比如是淘汰最近最少使用的数据(LRU),还是随机淘汰等,这个策略决定了缓存满了之后的行为。
实操步骤:
- 打开终端或命令行。
- 输入
redis-cli连接到你的Redis服务器(如果Redis在远程,可能需要加-h主机名和-p端口参数)。 - 输入
INFO Memory。 - 在输出结果里,迅速找到上面提到的这几个关键行。
举例: 你可能会看到类似这样的输出(只截取关键部分):
# Memory
used_memory: 1024567890
used_memory_human: 977.21M
used_memory_peak: 1203456789
used_memory_peak_human: 1.12G
maxmemory: 2147483648
maxmemory_human: 2.00G
maxmemory_policy: allkeys-lru
解读一下:
这个Redis实例当前用了大约977MB内存,历史上最高用过1.12GB,而我们给它设置的上限是2GB,所以目前还有大约1GB的剩余空间,暂时没有压力,淘汰策略设置的是 allkeys-lru。
辅助命令:查看单个Key的大小
有时候你不仅想知道总容量,还想揪出是哪些“大块头”Key占用了最多空间,这时候可以用 redis-cli 自带的一个强大工具。
命令:redis-cli --bigkeys
这个命令会扫描整个Redis数据库,并统计出各种数据类型中最大的Key,并给出它们的大小。
实操步骤:
- 直接在系统命令行(不是在redis-cli交互界面里)执行:
redis-cli -h your_redis_host -p your_redis_port --bigkeys - 等待它扫描完成,它会输出一个报告,类似:
Biggest string found 'user:session:very_long_id' has 1523123 bytes Biggest hash found 'product:info:12345' has 100000 fields这样你就能快速定位到可能是哪些Key导致了内存占用过高。
第二部分:通过监控工具来查看(更直观)
如果你觉得敲命令不够直观,或者想看到内存使用的历史趋势和实时变化,那么使用图形化监控工具是更好的选择。
Redis自带的命令行监控:MONITOR
在 redis-cli 中输入 MONITOR 命令,它会实时打印出Redis服务器接收到的每一个命令,这个命令主要用于调试,因为它会输出大量信息,对性能有影响,不要在生产环境长期开启,但它能让你真切地“看到”缓存的访问情况。
第三方图形化工具(如RedisInsight) Redis官方推出了一个免费的视觉化管理工具叫RedisInsight,非常推荐,根据RedisInsight官方介绍,它的主要优势是:
- 可视化内存仪表盘: 直接以图表形式展示
used_memory、used_memory_peak等关键指标,变化趋势一目了然。 - 慢查询分析: 帮你找到执行慢的命令。
- 浏览器Key: 可以方便地查看、修改、删除Key,并直接看到Key的大小。
- 内存分析: 有更高级的功能可以深入分析内存的使用模式。
你只需要去Redis官网下载RedisInsight,安装后连接到你的Redis服务器,就能在一个漂亮的界面里完成所有监控和排查工作,比纯命令行要轻松很多。
第三部分:查到了容量之后怎么办?
知道了内存用量,目的是为了更好的管理,如果发现内存快满了(used_memory 接近 maxmemory),你可以考虑:
- 清理过期或无用数据: 检查是否有可以删除的旧数据。
- 调整淘汰策略: 根据你的业务场景,选择一个合适的
maxmemory_policy,比如如果是缓存场景,用allkeys-lru或volatile-lru通常比较合适。 - 优化数据结构: 使用
--bigkeys找到的大Key,看看是否能用更节省内存的数据结构来存储,不要用巨大的String,也许可以拆成多个Hash。 - 考虑扩容: 如果业务确实在增长,最直接的办法就是增加
maxmemory配置(如果是在云服务上,就升级到更大的规格)。
查Redis缓存容量,最核心的就是登录到服务器,执行 INFO Memory 命令,重点关注 used_memory_human 和 maxmemory_human 这两个值,想找具体是哪个Key太大,就用 redis-cli --bigkeys,想要更省事、看趋势,就使用 RedisInsight 这类图形化工具,方法都很直接,动手试一下就能快速搞定。

本文由革姣丽于2026-01-12发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/79043.html
