针对Redis的故障排查有很多手段,以下列举一些:
- Redis是基于内存的key-value数据库,如果想对整个存储的数据做一个分析,可以从redis下载Rdb.dump 文件进行分析,也可以使用
bgsave
命令生成RDB快照文件,切记不要使用save
命令,否则会阻塞主线程; - 对某一个key进行内存大小分析,使用命令:
memory usage key
对某个key占用的内存进行统计 - 使用redis的monitor命令,举个栗子:
redis-cli -h localhost -p 6379 MONITOR | head -n 100000 | ./redis-faina.py
, 这条命令的意思是,对10万条命令进行动态监控,将结果输送给faina进行分析;有关faina的知识可以看它的git官网https://github.com/facebookarchive/redis-faina - 下面简单介绍一下faina,redis-faina是由Instagram 开发并开源的一个Redis 查询分析小工具,安装:git clone https://github.com/facebookarchive/redis-faina.git , 执行
./redis-faina.py -h
- redis监控命令monitor,如下图
但是实际上monitor对redis的性能是有影响的,利用bench-mark进行测试src/redis-benchmark -c 10 -n