redis监控建议关注如下几类典型指标:
- 性能Performance ,如:
latency: Redis响应一个请求的时间
instantaneous_ops_per_sec: 平均每秒处理请求总数
hi rate(calculated): 缓存命中率 - 内存Memory ,如:
used_memory: 已使用内存
mem_fragmentation_ratio:内存碎片率
evicted_keys:由于最大内存限制被移除的key的数量
blocked_clients:由于BLPOP,BRPOP,or BRPOPLPUSH而备阻塞的客户端 - 基本活动Basic activity ,如:
connected_clients:客户端连接
conected_laves:slave数量
master_last_io_seconds_ago:最近一次主从交互之后的秒数
keyspace:数据库中的key值总数 - 持久性Persistence ,如:
rdb_last_save_time: 最后一次持久化保存磁盘的时间戳
rdb_changes_sice_last_save: 自最后一次持久化以来数据库的更改数 - 错误Error,如:
rejected_connections:由于达到maxclient限制而被拒绝的连接数
keyspace_misses: key值查找失败(没有命中)次数
master_link_down_since_seconds:主从断开的持续时间(以秒为单位)
在redis中big key 对性能和可靠性危害较大,如果希望不影响正常使用,建议在从节点上用
redis-cli --bigkeys 进行监控 ,也可以通过 memory usage big:hash 进行监控;但这两种事后监控方式都治标不治本;
如果有客户端源程序,建议修改 客户端源程序,跟踪big key,然后进行优化处理(拆分或客户端本地化缓存)。