假设我在redis中有以下键:关键字名称:设置键哈希键Z设定键当我在上输入命令时 redis-cli : keys * 我正确地得到了上面所有钥匙的清单。为了获得特定键的数据类型,我们使用以下命令 type keyname .有没有办法列出redis中的所有键及其数据结构?例如:setkey集合哈希键哈希zsetkey排序集有没有一个命令/本地方法来实现这一点?提前谢谢。
redis-cli
keys *
type keyname
fnx2tebb1#
首先,你不应该使用 KEYS 命令,可能会长时间阻止redis。相反,您需要使用 SCAN 命令获取数据库中的所有键。第二,在Redis6.0之前,没有本地的方法可以做到这一点,您必须调用 SCAN 要迭代密钥空间,对于每个密钥,使用 TYPE 命令获取其类型。幸运的是,有了redis 6.0 SCAN 命令支持 TYPE 子命令,您可以使用此子命令扫描指定类型的所有键:
KEYS
SCAN
TYPE
SCAN 0 TYPE string SCAN 0 TYPE list
详细检查扫描文件。它还描述了原因 KEYS 很糟糕。
1条答案
按热度按时间fnx2tebb1#
首先,你不应该使用
KEYS
命令,可能会长时间阻止redis。相反,您需要使用SCAN
命令获取数据库中的所有键。第二,在Redis6.0之前,没有本地的方法可以做到这一点,您必须调用
SCAN
要迭代密钥空间,对于每个密钥,使用TYPE
命令获取其类型。幸运的是,有了redis 6.0
SCAN
命令支持TYPE
子命令,您可以使用此子命令扫描指定类型的所有键:详细检查扫描文件。它还描述了原因
KEYS
很糟糕。