我可以使用此命令获取一些键:
keys *_products_*
然而,该命令返回所有键,我只需要那些键。我怎么能得到它?
答案 0 :(得分:5)
您可以使用DBSIZE或INFO KEYSPACE
但是,如果您希望名称中包含特定模式的所有键,则需要使用KEYS或SCAN并且您需要注意KEYS
,在生产中运行它可以影响性能所以应谨慎使用。
答案 1 :(得分:1)
(邪恶的)KEYS
和首选的SCAN
都不会返回计数,只返回键名。您可以将它们包装在Lua脚本中以返回计数。
然而
实时执行KEYS
(或SCAN
)在性能方面非常昂贵 - 这意味着您在整个键空间上进行迭代。你想要做的是事先保持结果准备好,然后只需获取它。通常在这种情况下,您可以使用Redis Set,只要您创建了与模式*products*
匹配的密钥,就可以在其中存储每个相关的密钥名称 - SADD,并在删除密钥时从中删除。
但是
由于您只对计数感兴趣,因此可以使用简单的计数器替换该Set。
答案 2 :(得分:1)
答案 3 :(得分:0)
使用此命令行:
redis-cli --scan --pattern '*_products_*' | wc -l