假设我在 redis 中有以下键:
键名:
设置键
散列键
zsetkey
当我在 redis-cli
上输入命令时: keys *
我正确地得到了上述所有键的列表。要获取特定键的数据类型,我们使用命令 type keyname
.
有没有办法列出 redis 中的所有键及其数据结构?例如:
设置键集
哈希键哈希
zsetkey 排序集
有没有一种命令/ native 方式来实现这一点?提前致谢。
最佳答案
首先,你不应该使用 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
不好。
关于redis - 有没有办法列出所有 redis 的键及其数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60363471/