首页/数据/数据库速查/大 key 处置(拆分 / 渐进删除 / 压缩)
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条Redis 命令96 条
Redis 运维与场景124 条

大 key 处置(拆分 / 渐进删除 / 压缩)

处置路径:能拆就拆(按 hash tag 分片)、删除用 UNLINK 或分批 HDEL/ZREM、value 压缩或改 BLOB 存储;先止血再重构。

数据库速查数据更新于 2026-10-12

渐进删除示例

渐进删除示例
# 分批删大 Hash:
for i in 1 2 3; do redis-cli HSCAN big:hash 0 COUNT 1000
  # 客户端循环 HDEL 一批
done
# 大 List:
redis-cli LTRIM big:list 0 999      # 只保留前 1000 个元素,其余删除
# 最省事:
UNLINK big:hash
拆分big:cart:u88 -> big:cart:u88:{0..9},按 hash tag 分片
删除UNLINK 异步释放;同步删除会阻塞
压缩value 压缩后存储,读时解压;或用 RedisJSON 特殊优化
大 key 的日常预防:写入路径限制单键大小(如 Hash 超过 1 万字段就拆分),把「限制」写进业务代码而不是靠事后巡检。

易错点

  • 用 DEL 删大 key:主线程阻塞数百毫秒
  • 拆分后忘记迁移读取逻辑:老键继续被写,问题复现

数据来源与参考

  • Redis 官方文档: 大 key
  • Redis 官方文档: UNLINK

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌