Redis使用量暴增,快速定位有哪些大key在作怪
发布日期:2025-05-03 02:10:21 浏览次数:9 分类:精选文章

本文共 1162 字,大约阅读时间需要 3 分钟。

发现 Redis 使用量突然暴增,紧急扩容 Redis 时不能影响服务运行。扩容后,立即查找原因,突破口是寻找存在哪些大 key。

  • 下载 Redis 的持久化文件 dump.rdb 到本地。Redis 的持久化文件通常以 rdb 格式存储,配置文件中可以找到 dump.rdb 的存储路径。

  • 使用 rdbtools 生成内存报告。rdbtools 是一个用 Python 开发的工具,生成内存报告的命令为 rdb -c memory,将 dump.rdb 文件指定为输入文件,输出到 CSV 文件。注意:rdb 文件越大,生成时间越长。

  • 对生成的内存报告进行排序,找出占用最高的 key。使用 Linux 的 sort 命令按内存列排序,排序结果保存到新的文件中。

  • 查看排序后的前 1000 个数据,进一步确认哪些 key 占用了最多内存。使用 awk 和 head 命令提取关键信息。

  • 计算特定 key 占用的内存总量。使用 grep 和 awk 命令提取相关数据,计算总和。

  • 删除占用最高内存的 key。使用 redis-cli 模糊匹配 key,删除对应的数据。命令为 redis-cli -h 127.0.0.1 -p 6379 keys 'my_ranking_list*' | xargs redis-cli -h 127.0.0.1 -p 6379 del

  • 在本地启动 Redis 加载 dump.rdb 文件时,发现一直 load 失败。经过长时间调试,终于找到原因:Redis 配置文件中 databases 参数需要修改为 256,因为原始 dump.rdb 文件对应的 Redis 实例使用了 256 个数据库,默认值为 16。修改后,Redis 成功加载持久化文件。

    参考资料:

  • FAQ:https://github.com/sripathikrishnan/redis-rdb-tools/wiki/FAQs
  • Redis dump 文件规范:https://github.com/sripathikrishnan/redis-rdb-tools/wiki/Redis-RDB-Dump-File-Format
  • Redis RDB 历史版本:https://github.com/sripathikrishnan/redis-rdb-tools/blob/master/docs/RDB_Version_History.textile
  • Redis-rdb-tools:https://github.com/sripathikrishnan/redis-rdb-tools
  • https://blog.csdn.net/jiangsanfeng1111/article/details/53523581
  • 上一篇:php 结课作业答案,北语201803考试批次《PHP》(结课作业)1.pdf
    下一篇:PHP 第一天

    发表评论

    最新留言

    不错!
    [***.144.177.141]2026年06月12日 07时43分13秒