Redis存储快速占满,寻求存储占用可视化工具(支持Azure)
解决Azure Redis存储增长过快的可视化分析方案
针对你遇到的Azure Redis缓存存储增长过快,需要直观分析存储构成(按大小统计键前缀、按键前缀统计键数量)的需求,我整理了几个实用的方案,覆盖原生Redis命令、Azure专属工具和可视化工具:
一、原生Redis命令(兼容Azure Redis)
Azure Redis完全兼容标准Redis命令,推荐用安全的遍历方式统计,避免用KEYS *(会阻塞大实例):
1. 编写脚本统计前缀数据
你可以写个简单的bash或Python脚本,用SCAN遍历所有键,提取前缀(比如按冒号:分割),再用MEMORY USAGE获取每个键的内存占用,最后累加统计:
- Bash示例思路:
脚本会输出每个前缀的键数量和总内存占用,按内存从大到小排序。# 替换为你的Azure Redis连接字符串 REDIS_CONN="redis://:<your-password>@<your-redis-name>.redis.cache.windows.net:6380" # 遍历键、提取前缀并统计数量与内存 redis-cli -u $REDIS_CONN --scan | while read key; do prefix=$(echo $key | cut -d':' -f1) memory=$(redis-cli -u $REDIS_CONN MEMORY USAGE $key) echo "$prefix $memory" done | awk '{prefix[$1]++; size[$1]+=$2} END {for(p in prefix) print p, prefix[p], size[p]}' | sort -k3 -nr
2. 用redis-memory-analyzer工具
第三方工具redis-memory-analyzer(通过pip安装)能自动扫描Redis实例,生成结构化的内存分析报告:
pip install redis-memory-analyzer rma -h <your-redis-name>.redis.cache.windows.net -p <your-password> -P 6380 -s
它会输出可视化统计表格,直接展示各前缀的键数、内存占比等核心数据。
二、Azure专属工具
如果只想用Azure原生方案,以下两个工具能快速帮你分析:
1. Azure Portal监控与Log Analytics
- 先在Azure门户进入你的Redis缓存实例,打开「监控」选项卡查看基础内存指标;若要分析前缀,需开启诊断日志:
- 进入「诊断设置」,开启日志收集并发送到Log Analytics工作区。
- 在Log Analytics中用Kusto查询分析前缀,比如:
(若要统计内存,需确保日志包含RedisLogs | parse Command with * Key * | extend Prefix = split(Key, ":")[0] | summarize KeyCount=count() by Prefix | sort by KeyCount descMEMORY USAGE执行记录,可调整诊断日志的命令类别)
2. Azure CLI执行Redis命令
用Azure CLI可直接在云端执行Redis命令,无需本地安装redis-cli:
# 获取Redis实例的主机名和密钥 az redis show --name <your-redis-name> --resource-group <your-rg> --query hostName -o tsv az redis list-keys --name <your-redis-name> --resource-group <your-rg> --query primaryKey -o tsv # 执行SCAN命令遍历键(可结合脚本逻辑扩展) az redis execute --name <your-redis-name> --resource-group <your-rg> --command "SCAN 0 COUNT 1000"
三、可视化工具(推荐)
想要更直观的界面分析,这些工具能快速生成存储构成图:
1. RedisInsight(官方工具)
Redis官方免费可视化工具,完美支持Azure Redis:
- 下载安装后,输入Azure Redis连接字符串即可添加实例。
- 进入「内存分析」模块,选择「按前缀分组」,就能直接看到每个前缀的键数量、总内存占用、平均内存等数据,还能生成饼图/柱状图,直观展示存储构成。
2. Power BI自定义仪表盘
如果你已经在用Power BI,可以连接Azure Monitor的Redis指标,或者把脚本统计的数据导入Power BI,制作自定义的存储构成仪表盘,方便长期监控分析。
这些方案应该能帮你快速定位到哪些键前缀占用了最多的存储,进而针对性地清理或优化缓存策略。
内容的提问来源于stack exchange,提问作者Dan Benjamin
相关产品推荐
相关产品推荐

