导出 Redis 的所有 key 并进行分类

半兽人 发表于: 2025-01-27   最后更新时间: 2025-01-27 01:51:47  
{{totalSubscript}} 订阅, 29 游览

1. 使用 SCAN 命令批量导出所有 key

SCAN 是非阻塞的,可以安全地在生产环境中使用:

redis-cli --scan > keys.txt

该命令将所有 key 写入 keys.txt 文件。

注意

  • SCAN 不会阻塞 Redis 服务。
  • 如果 key 很多,可以通过分批处理 COUNT 来控制输出量:
    redis-cli SCAN 0 COUNT 1000 > keys.txt
    

2. 对 key 进行分类

一般情况下,key 有特定的命名规则(例如 prefix:subprefix:key),可以通过前缀进行分类。

使用 shell 脚本对 key 分类

cat keys.txt | awk -F: '{print $1}' | sort | uniq -c > key_classes.txt

输出示例:

150 user
 90 session
 60 product

这表示 user 前缀的 key 有 150 个,session 有 90 个。

更新于 2025-01-27

查看redis更多相关的文章或提一个关于redis的问题,也可以与我们一起分享文章