1、问题背景
前几天突然收到Redis内存超标的报警,赶紧看了下监控,看到这个曲线吸了一口凉气,这增长速度也太快了,需要快速定位出问题,不然就要爆了。
查看内存使用情况:free -m
这个Redis由多个应用共享,我们就有2个问题需要解决:
- 首先要找出是哪个应用在占用Redis内存;
- 其次是到底是某个key值太大,还是数量太多引起的?
为解答这2个问题,首先通过redis-cli进入redis看看,立马发现对这2个问题基本束手无策,这里面总共有20W以上的键,不太可能一个个过过去,redis-cli本身也不支持按大小对key值排序,也不支持对键值分组统计,我们需要换个思路。看看有没有第三方的Redis内存分析工具。经过一番搜索,最终找到了一个完全满足要求又易用的工具——Redis Insight,我也同时对比了其他纯命令行工具,比如redis-rdb-tools,RMA等等,但是发现执行速度慢很多,结果也不直观。
下面我们看下使用Redis Insight如何解决这个问题。
2、使用Redis Insight定位问题
下载地址:https://redis.com/redis-enterprise/redis-insight/#insight-form
|