08-Redis监控
Redis 提供了 INFO 命令来获取服务器的统计信息和运行状态。通过监控这些指标,可以及时发现问题并进行优化。
参考文档:http://www.redis.cn/commands/info.html
监控指标详解
Server 信息
包含 Redis 服务器的基本信息:版本号、运行模式(standalone/sentinel/cluster)、操作系统、进程 PID、运行时长、配置文件路径等。
关键指标:
- uptime_in_seconds:服务器运行时长(秒)
- process_id:进程 PID
- tcp_port:监听端口
- config_file:配置文件路径
Clients 连接
监控客户端连接状态,帮助了解系统负载:
- connected_clients:当前连接数(不含从节点)
- blocked_clients:阻塞命令等待的客户端数
- client_longest_output_list:最长输出列表
- client_biggest_input_buf:最大输入缓存
🚨 生产环境监控建议
定期检查 connected_clients,避免连接数过多导致性能下降。如果 blocked_clients 持续增长,可能存在慢查询或死锁问题。
Memory 内存
内存是 Redis 最重要的监控指标:
核心指标:
- used_memory:Redis 分配的内存总量
- used_memory_rss:操作系统分配给 Redis 的内存(常驻内存)
- used_memory_peak:内存使用峰值
- mem_fragmentation_ratio:内存碎片率(rss/used)
内存状态判断:
- 碎片率 > 1.5:存在严重内存碎片,考虑重启实例
- used > rss:部分内存被换出到 swap,会导致严重性能问题
- used_memory 接近 maxmemory:需要扩容或优化数据结构
⚠️ 内存问题诊断
内存碎片过高:
- 检查 mem_fragmentation_ratio,正常值应在 1.0-1.5 之间
- 碎片率过高时执行 CONFIG SET activedefrag yes开启主动碎片整理
- 必要时在业务低峰期重启实例
内存使用过高:
- 检查是否有大 key:redis-cli --bigkeys
- 分析内存使用:MEMORY STATS
- 优化数据结构或增加 maxmemory 限制
Persistence 持久化
监控 RDB 和 AOF 的执行状态:
RDB 相关:
- rdb_last_bgsave_status:最后一次 RDB 保存状态
- rdb_last_bgsave_time_sec:最后一次保存耗时
- rdb_changes_since_last_save:上次保存后的修改次数
AOF 相关:
- aof_enabled:AOF 是否启用
- aof_last_rewrite_time_sec:最后一次重写耗时
- aof_current_size:当前 AOF 文件大小
- aof_buffer_length:AOF 缓冲区大小
Stats 统计
运行统计信息:
- total_commands_processed:处理的命令总数
- instantaneous_ops_per_sec:每秒处理命令数(QPS)
- keyspace_hits/misses:缓存命中率相关
- evicted_keys:因内存限制驱逐的 key 数量
缓存命中率计算:
命中率 = keyspace_hits / (keyspace_hits + keyspace_misses) * 100%
Replication 主从复制
主从复制状态监控:
- role:实例角色(master/slave)
- connected_slaves:连接的从节点数
- master_link_status:主从连接状态
- master_last_io_seconds_ago:主从最后通信时间
🚨 主从复制监控要点
- 监控 master_link_status,确保主从连接正常
- 关注 master_last_io_seconds_ago,超过 10 秒可能存在网络问题
- 检查 master_sync_in_progress,长时间同步可能影响性能
CPU 使用
CPU 使用情况:
- used_cpu_sys:系统 CPU 消耗
- used_cpu_user:用户 CPU 消耗
- used_cpu_sys_children:后台进程系统 CPU
- used_cpu_user_children:后台进程用户 CPU
监控最佳实践
💡 监控建议
- 
设置告警阈值: - 内存使用率 > 80%
- 连接数 > 最大连接数的 80%
- 主从延迟 > 10 秒
- 缓存命中率 < 90%
 
- 
定期巡检: - 每小时检查内存碎片率
- 每天检查慢查询日志
- 每周分析大 key
 
- 
使用监控工具: - Redis 自带:INFO、MONITOR、SLOWLOG
- 第三方:Redis Exporter + Prometheus + Grafana
- 云服务:阿里云 Redis 监控、AWS ElastiCache 监控
 
更新: 2025-01-17 09:48:12