要统计生产中redis集群中的某个key存在多少个,用redis自带命令扫描效率低,所以写个python脚本,采用游标去跑,
import redis
def count_matching_keys(client, pattern):
"""
这是一个自定义函数,用于计算与给定模式匹配的 Redis 键的数量
参数:
client: Redis 客户端实例,用于与 Redis 服务器进行通信
pattern: 要匹配的键的模式
返回值:
匹配模式的键的数量
"""
cursor = 0 # 初始化游标为 0
count = 0 # 初始化匹配的键的数量为 0
while True: # 无限循环,直到满足特定条件退出
cursor, keys = client.scan(cursor, match=pattern) # 使用 Redis 的 scan 命令获取匹配的键和新的游标
count += len(keys) # 将本次获取到的匹配键的数量累加到总数中
if cursor == 0: # 如果游标为 0,表示扫描结束
break # 退出循环
return count # 返回匹配键的总数
# 连接到指定的 Redis 服务器
client = redis.Redis(host='common-redis-test.cn-s01-dgtest01.redis.oppo.test', port=6379, db=0)
# 调用函数计算匹配特定模式的键的数量
matching_key_count = count_matching_keys(client, "ad:appInfo:appid:*")
# 打印结果
print("符合特定模式的 key 数量为:", matching_key_count)
运行结果: