工具使用 redis-rdb-tools

王大爷 2025年04月10日 64次浏览

在 Mac 系统中安装并使用 redis-rdb-tools(用于分析 Redis RDB 文件),可按照以下步骤操作:


一、安装 redis-rdb-tools

  1. 确保 Python 环境
    redis-rdb-tools 依赖 Python 3.6 及以上版本。Mac 系统通常预装 Python,但需检查版本:

    python3 --version
    

    若未安装 Python3,可通过 Homebrew 安装:

    brew install python
    
  2. 使用 pip 安装 rdbtools
    通过国内镜像加速安装(推荐清华源):

    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple rdbtools
    

    此步骤会安装核心工具 rdb,用于解析 RDB 文件。

  3. 加速解析(可选:安装 python-lzf)
    安装 python-lzf 可显著提升解析速度,但需编译环境支持:

    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple python-lzf
    
    • 若编译报错:需安装 Xcode 命令行工具:
      xcode-select --install
      

二、生成并分析 RDB 文件

  1. 获取 Redis RDB 文件

    • 确认 Redis 配置文件 redis.confdirdbfilename 的路径(默认路径如 /usr/local/redis-3.2.8/db/dump.rdb)。
    • 若需手动生成 RDB 快照,执行命令:
      redis-cli BGSAVE
      
  2. 使用 rdb 工具分析
    执行以下命令生成内存报告(CSV 格式):

    rdb -c memory /path/to/dump.rdb --bytes 1024 > report.csv
    
    • --bytes 1024:过滤内存占用超过 1KB 的 Key。
    • 报告包含 Key 名称、类型、内存大小、元素数量等信息。
  3. 常用分析场景

    • 查找大 Key:按内存排序 CSV 文件,定位占用高的 Key。
    • 统计 Key 模式:筛选高频前缀(如 user:*),排查异常写入逻辑。

三、解决常见问题

  1. 权限问题
    若安装时提示权限不足,可添加 --user 参数或使用虚拟环境:

    pip3 install --user rdbtools
    
  2. 依赖冲突
    建议使用 venv 隔离 Python 环境:

    python3 -m venv myenv
    source myenv/bin/activate
    pip install rdbtools
    
  3. RDB 文件路径
    若找不到 RDB 文件,检查 Redis 配置文件中的 dirdbfilename 参数,或通过命令查询:

    redis-cli CONFIG GET dir
    

四、替代方案(可视化工具)

若需图形化分析,可尝试以下工具:

  • RedisInsight:官方可视化工具,支持内存分析、实时监控。
  • rdr:开源 RDB 文件解析器,提供 Web 界面展示 Key 分布。

五、增量扫描对比法

适用场景:适合非实时性需求,通过对比不同时间点的 Key 分布差异来定位增长热点。

​首次快照生成
在起始时间点(如 24 小时前)执行 BGSAVE 生成 RDB 文件,保存为 dump_start.rdb。

​结束快照生成
在结束时间点执行 BGSAVE,保存为 dump_end.rdb。
​使用 RDB 工具对比差异
通过 redis-rdb-tools 或 rdb 工具解析两个 RDB 文件,生成 Key 列表并对比差异:

bash
# 解析起始快照  
rdb --command json dump_start.rdb > start.json  
# 解析结束快照  
rdb --command json dump_end.rdb > end.json  
# 使用 diff 工具对比 Key 数量变化  
diff start.json end.json | grep "SET\|HSET" > key_growth.log 

​优点:对线上服务无性能影响7。
​缺点:需手动生成快照,RDB 文件较大时解析耗时较长


通过以上步骤,你可以在 Mac 上高效安装并使用 redis-rdb-tools 分析 Redis 数据增长问题。如需进一步优化排查逻辑,可结合 INFO keyspace 命令和业务日志综合分析。