【问题标题】:Is there a way to list all the keys of redis with their datatypes?有没有办法列出所有 redis 的键及其数据类型?
【发布时间】:2020-02-23 14:57:13
【问题描述】:

假设我在 redis 中有以下键:

键名:
设置键
哈希键
zsetkey

当我在redis-cli 上输入命令时:keys * 我正确地得到了上述所有键的列表。要获取特定键的数据类型,我们使用命令type keyname

有没有办法列出 redis 中的所有键及其数据结构?例如:

设置键设置
哈希键哈希
zsetkey 排序集

是否有实现此目的的命令/本机方式?提前致谢。

【问题讨论】:

    标签: redis


    【解决方案1】:

    首先,你不应该使用KEYS 命令,这可能会长时间阻塞Redis。相反,您需要使用SCAN 命令来获取数据库中的所有键。

    其次,在 Redis 6.0 之前,没有原生方法可以做到这一点,您必须调用 SCAN 来迭代键空间,并且对于每个键,使用 TYPE 命令获取其类型。

    幸运的是,在 Redis 6.0 中,SCAN 命令支持TYPE 子命令,您可以使用该子命令扫描指定类型的所有键:

    SCAN 0 TYPE string
    
    SCAN 0 TYPE list
    

    详情请查看the doc of SCAN。它还描述了为什么KEYS 不好。

    【讨论】:

      猜你喜欢
      • 2017-07-11
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      • 2021-03-08
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      • 1970-01-01
      相关资源
      最近更新 更多