一尘不染

有没有办法列出Redis的所有键及其数据类型?

redis

假设我在redis中有以下键:

密钥名称:
setkey
hashkey
zsetkey

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

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

setkey set
hashkey hash
zsetkey sorted set

是否有命令/本机方式来实现这一目标?提前致谢。


阅读 354

收藏
2020-06-20

共1个答案

一尘不染

首先,您不应该使用该KEYS命令,因为它可能会长时间阻止Redis。相反,您需要使用SCAN命令来获取数据库中的所有密钥。

其次,在Redis 6.0之前,没有本机的方法可以执行此操作,您必须调用SCAN以迭代键空间,对于每个键,使用TYPE命令获取其类型。

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

SCAN 0 TYPE string

SCAN 0 TYPE list

有关详细信息,请检查SCAN文档。它还描述了为什么KEYS不好。

2020-06-20