TOC

Redis 获取所有 key

测试环境

keys *

删除指定模式的 key:

redis-cli keys 'a.b.*' > /tmp/deleted_keys
cat /tmp/deleted_keys
cat /tmp/deleted_keys | xargs redis-cli del

线上环境

线上 keys 可能会导致严重的性能问题。

2.8 开始,Redis 增加了 4 个 SCAN 命令:

  • SCAN cursor [MATCH pattern] [COUNT count] [TYPE type] 遍历当前 db 中的所有键, 返回 keys ...
  • SSCAN key cursor [MATCH pattern] [COUNT count] 遍历 set 类型,返回 value ...
  • HSCAN key cursor [MATCH pattern] [COUNT count] 遍历 hash 类型,返回 (key, value)
  • ZSCAN key cursor [MATCH pattern] [COUNT count] 遍历 sorted set 类型,返回 (score, member)
scan 0 count 100

每次会返回一个新的游标,用于下一次 scan 请求。

import redis
r = redis.StrictRedis(host='localhost', port=6379, db=0)
for key in r.scan_iter():
    print(key)