如何在 Azure Redis 缓存控制台中查看匹配模式的键数

How to see key count of matching pattern in Azure Redis Cache Console

我只想查看 Azure Redis 缓存中与给定模式匹配的可用密钥总数。我尝试了以下命令,它在显示所有键后显示计数(这导致服务器负载),但我只需要计数。

>SCAN 0 COUNT 10000000 MATCH "{UID}*"

除了命令 SCAN,命令 KEYS pattern 可以 return 与当前命令 SCAN 0 COUNT 10000000 MATCH "{UID}*".

相同的结果

但是,对于您真正需要获取与模式匹配的键的数量,Redis 官方 GitHub 存储库中有一个问题 add COUNT command,作者已回答 antirez 给你,如下内容

Hi, KEYS is only intended for debugging since it is O(N) and performs a full keyspace scan. COUNT has the same problem but without the excuse of being useful for debugging... (since you can simply use redis-cli keys ... | grep ...). So feature not accepted. Thanks for your interest.

所以你不能直接得到KEYS pattern的计数,但是有一些可能的解决方案。

  1. 使用您的编程语言从命令 KEYS pattern 中计算键 return 以获取具有模式的少量键,例如在主机服务器上执行 redis-cli KEYS "{UID}*" | wc -l Redis.

  2. 要使用命令EVAL script numkeys key \[key ...\] arg \[arg ...\]到运行一个Lua脚本来计算带模式的键,有两个脚本你可以试试。

    2.1。脚本 1

    return #redis.call("keys", "{UID}*")
    

    2.2。脚本 2

    return table.getn(redis.call('keys', ARGV[1]))
    

    redis-cli中完成的命令是EVAL "return table.getn(redis.call('keys', ARGV[1]))" 0 {UID}*