查看大key
1.redis-cli --bigkeys 内置工具
特点:
- 无需额外工具
,Redis 自带。
- 统计每种数据类型中最大的 Key(如最大的 String、Hash 等)。
- 不阻塞 Redis,但扫描速度较慢(全库扫描)。
2. 使用 MEMORY USAGE 命令(精确分析)
命令:
redis-cli MEMORY USAGE your_key
示例:
查看指定 Key 的内存占用(字节)
redis-cli MEMORY USAGE "user:profile:1001"
特点:
- 精确计算单个 Key 的内存占用(包括 Redis 内部数据结构开销)。
- 需提前知道 Key 名,适合针对性检查。
3. 使用 SCAN + DEBUG OBJECT(自定义扫描)
脚本示例(批量扫描大 Key):
redis-cli --scan --pattern '*' | while read key; do size=(redis-cli MEMORY USAGE "key") if "$size" -gt 10240 ; then # 大于10KB的Key echo "Key: key, Size: size bytes" fi done
特点:
- 灵活自定义阈值(如筛选 >10KB 的 Key)。
- 可结合--pattern 过滤特定前缀的 Key。
- 速度较慢,适合低峰期执行。
4. 使用 rdb-tools(离线分析 RDB 文件)
步骤:
- 生成 RDB 文件
bash
redis-cli SAVE # 阻塞式保存,或使用 BGSAVE
2.使用 rdb-tools 分析:
bash
pip install rdbtools rdb --memory /var/lib/redis/dump.rdb --bytes 10240 > bigkeys.csv
输出示例:
database,type,key,size_in_bytes,encoding,num_elements,len_largest_element 0,hash,user:1001,15392,ziplist,5,1024 0,string,cache:item:2023,20480,string,20480,20480
特点:
- 精准分析每个 Key 的内存占用
- 完全离线,不影响生产环境
- 支持导出 CSV/JSON 格式,便于后续处理。
推荐流程:
- 先用 --bigkeys 快速定位可疑 Key。
- 对可疑 Key 使用 MEMORY USAGE 确认大小。
- 通过rdb-tools 深度分析(如需优化内存)。