如何获取redis中的密钥数?

时间:2015-11-09 21:43:37

标签: redis

我可以使用此命令获取一些键:

keys *_products_*

然而,该命令返回所有键,我只需要那些键。我怎么能得到它?

4 个答案:

答案 0 :(得分:5)

您可以使用DBSIZEINFO KEYSPACE

但是,如果您希望名称中包含特定模式的所有键,则需要使用KEYSSCAN并且您需要注意KEYS,在生产中运行它可以影响性能所以应谨慎使用。

答案 1 :(得分:1)

(邪恶的)KEYS和首选的SCAN都不会返回计数,只返回键名。您可以将它们包装在Lua脚本中以返回计数。

然而

实时执行KEYS(或SCAN)在性能方面非常昂贵 - 这意味着您在整个键空间上进行迭代。你想要做的是事先保持结果准备好,然后只需获取它。通常在这种情况下,您可以使用Redis Set,只要您创建了与模式*products*匹配的密钥,就可以在其中存储每个相关的密钥名称 - SADD,并在删除密钥时从中删除。

但是

由于您只对计数感兴趣,因此可以使用简单的计数器替换该Set。

答案 2 :(得分:1)

DBSIZE 返回数据库中的键数

enter image description here

http://redis.io/commands/dbsize

答案 3 :(得分:0)

使用此命令行:

redis-cli --scan --pattern '*_products_*' | wc -l