如何获取 Azure Redis 键命中数?

How to get Azure Redis key hit count?

有没有办法获取存储在 azure redis 缓存中的所有键及其命中数?

我想根据键的点击次数生成报告。

How to get Azure Redis key hit count?

  • Redis 不直接提供命中率指标。我们仍然可以这样计算:hit rate = keyspace_hits / (keyspace_hits + keyspace_misses)

i need to just delete cache keys, which are not frequently used or used very less.

  • 使用 object idletime 您可以删除所有长期未使用的密钥
#!/usr/bin/env python
import redis
r = redis.StrictRedis(host='localhost', port=6379, db=0)
for key in r.scan_iter("*"):
    idle = r.object("idletime", key)
    # idle time is in seconds. This is 90days
    if idle > 7776000:
        r.delete(key)
  • 如果您在 6 个月前创建了一个密钥,但每天都访问该密钥,则更新空闲时间并且此脚本不会删除它。

  • OBJECT IDLETIME command returns 自存储在指定键上的对象空闲以来的秒数(读取或写入操作未请求)。

#!/bin/sh

redis-cli -p 6379 keys "*" | while read LINE ;
do
val=`redis-cli -p 6379 object idletime $LINE`;
if [ $val -gt $((30 * 24 * 60 * 60)) ];
then
  echo "$LINE";
  # del=`redis-cli -h redis_host -p redis_port -a redis_password del $LINE`;  # be careful with del
  # echo $del;
fi
done;
  • 更改 scrumplr 的 source 以让 Redis 在 30 天后自动使密钥过期。可疑文件似乎是 lib/data/redis.js,补丁只需要在写入每个键后使用 SET...EXEXPIRE 命令。

更多信息请参考GIT Hub