假设我在redis中有以下键:
密钥名称: setkey hashkey zsetkey
当我输入命令redis-cli:keys * 我正确地得到所有上述密钥列表。要获取特定键的数据类型,我们使用命令type keyname。
redis-cli
keys *
type keyname
有没有办法列出Redis中的所有键及其数据结构?例如:
setkey set hashkey hash zsetkey sorted set
是否有命令/本机方式来实现这一目标?提前致谢。
首先,您不应该使用该KEYS命令,因为它可能会长时间阻止Redis。相反,您需要使用SCAN命令来获取数据库中的所有密钥。
KEYS
SCAN
其次,在Redis 6.0之前,没有本机的方法可以执行此操作,您必须调用SCAN以迭代键空间,对于每个键,使用TYPE命令获取其类型。
TYPE
幸运的是,在Redis 6.0中,该SCAN命令支持TYPE子命令,您可以使用此子命令来扫描指定类型的所有键:
SCAN 0 TYPE string SCAN 0 TYPE list
有关详细信息,请检查SCAN文档。它还描述了为什么KEYS不好。