讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在无中断情况下分析Redis全量Key的内存分布

夜静酱_6454

夜静酱_6454

发布时间:2026-10-31 06:36:34

|

803人浏览过

|

来源于php中文网

原创

redis-cli --bigkeys 是低干扰初筛大 key 的唯一安全起点,需加 -i 0.1 参数并优先在从库执行;其输出仅为候选信号,须用 MEMORY USAGE 精确验证;RDB 分析可发现分散型大 key,但 size_in_bytes 非运行内存;过期积压与内存碎片是更隐蔽的静默消耗者。

如何在无中断情况下分析redis全量key的内存分布

用 redis-cli --bigkeys 做低干扰初筛

直接扫全量 key 会阻塞主线程,尤其在千万级 key 的实例上,redis-cli --bigkeys 是唯一能兼顾覆盖率和安全性的起点。它不查内存,但按类型(String/Hash/List/Set/ZSet)各返回一个“最大代表”——比如 Biggest hash found 'user:profile:123' has 48291 fields,这就是强信号。

必须加 -i 0.1 参数:每扫描 100 个 key 暂停 0.1 秒,把对延迟的影响压到毫秒级。别在高峰期主库跑,优先选只读从库(需临时设 slave-read-only no)或业务低峰期。

注意:--bigkeys 输出的 “has 48291 fields” 是元素数,不是字节数;String 类型才显示字节数。它只是筛出候选,不能当结论。

对候选 key 用 MEMORY USAGE 精确验证

MEMORY USAGE 返回的是真实内存占用(单位字节),包含键名、值、编码头、指针等全部开销。执行 MEMORY USAGE user:profile:123,若返回 8367254(约 8.4MB),就坐实了它是大 key。

关键限制:

redis-tools
redis-tools

按类别查找Redis命令、检测服务器连接、监控键数量和内存占用,支持离线速查表。

下载
  • 该命令是阻塞式,单次调用没问题,但批量扫几百个候选 key 会拖慢服务
  • 对 Hash/List/ZSet 等复合结构,结果是抽样估算(默认 SAMPLES=5),想更准可加 SAMPLES 100,但耗时明显上升
  • 别在主库上循环调用 —— 优先走从库,或只查你从 --bigkeys 或日志里人工圈出的 Top 10 候选

离线分析 RDB 文件避开运行时干扰

当 --bigkeys 找不到明显目标,或怀疑有“分散型大 key”(比如 log:20261019:* 一类命名规律强、单个不大但总量惊人),就得脱离线上实例,分析 RDB 快照。

步骤很明确:

  • 确认 Redis 已生成最新 RDB(检查 save 配置或手动 BGSAVE)
  • 用新版 rdbtools 或 redis-rdb-cli(支持 RDB v12 格式)导出: rdb -c memory dump.rdb > memory.csv
  • CSV 含字段 db、type、key、size_in_bytes、encoding —— 注意:这个 size_in_bytes 是 RDB 序列化体积,不是运行时内存,仅作初筛
  • 导入 Excel 或 ClickHouse,按 size_in_bytes 降序,取 Top 100,再挑出其中符合命名特征的 key,回线上逐个 MEMORY USAGE 验证

别信 RDB 中的 size 字段对复合结构的参考价值:ZSet 的 size_in_bytes 只是成员数,完全不反映 value 长度;一个含 1000 个长字符串的 Hash,RDB size 可能只有几 KB,但实际内存轻松破 MB。

别漏掉“伪大 key”:过期积压与内存碎片

如果 used_memory 高但查不出大 key,立刻看 INFO memory 中两个指标:

  • expired_keys 很大而 evicted_keys 几乎为 0 → 过期 key 没被及时清理,仍占内存(Redis 惰性删除 + 定期抽样,积压后就是隐形水位)
  • mem_fragmentation_ratio > 1.5 → 内存碎片严重,used_memory 没涨但 used_memory_rss 疯涨,此时优化方向是重启或启用 activedefrag yes

真正难缠的从来不是显性大 key,而是这些不报错、不告警、只默默吃内存的“静默消耗者”。它们不会出现在 --bigkeys 输出里,也不会被 MEMORY USAGE 捕获,只能靠 INFO memory 的全局指标交叉印证。

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

相关专题

更多
常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

4729

2023.11.02

内存数据库有哪些
内存数据库有哪些

内存数据库有Redis、Memcached、Apache Ignite、VoltDB、TimesTen、H2 Database、Aerospike、Oracle TimesTen In-Memory Database、SAP HANA和ache Cassandra。更多关于内存数据库相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

4275

2023.11.14

mongodb和redis哪个读取速度快
mongodb和redis哪个读取速度快

redis 的读取速度比 mongodb 更快。原因包括:1. redis 使用简单的键值存储,而 mongodb 存储 json 格式的数据,需要解析和反序列化。2. redis 使用哈希表快速查找数据,而 mongodb 使用 b-tree 索引。因此,redis 在需要高性能读取操作的应用程序中是一个更好的选择。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

8112

2024.04.02

redis怎么做缓存服务器
redis怎么做缓存服务器

redis 作为缓存服务器的答案:redis 是一款开源、高性能、分布式的键值存储,可作为缓存服务器使用。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

663

2024.04.07

redis怎么解决数据一致性
redis怎么解决数据一致性

redis 提供了两种一致性模型,以维护副本数据一致性:强一致性 (sync) 确保写操作仅在复制到所有从节点后才完成;最终一致性 (async) 则在主节点上写操作后认为已完成,牺牲一致性换取性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

776

2024.04.07

mysql和redis怎么保证双写一致性
mysql和redis怎么保证双写一致性

确保 mysql 和 redis 双写一致性的技术包括:1、事务性更新:同时更新 mysql 和 redis,保证一致性;2、主从复制:mysql 主服务器更改同步到 redis 从服务器;3、基于事件的更新:mysql 记录更改并发送到 redis等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

8222

2024.04.07

redis缓存一般存些什么数据
redis缓存一般存些什么数据

redis缓存中存储的数据类型包括:字符串、哈希、列表、集合、有序集合、位图、地理空间数据和hyperloglog。这些数据类型适用于存储各种数据,从简单信息到复杂对象和地理位置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1180

2024.04.07

redis的8种数据类型有哪些
redis的8种数据类型有哪些

redis 提供 8 种数据类型:字符串(文本、数字、二进制)、哈希(键值对)、列表(有序集合)、集合(无序唯一元素)、有序集合(按分数排序)、地理空间(地理位置)、hyperloglog(估计大数据基数)和位图(位序列存储)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1256

2024.04.07

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

60

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn