以下按内存、性能 / 延迟、持久化、客户端、主从 / 集群、可用性 六大维度,逐一说明阈值超限的具体影响(从轻微性能损耗到严重服务不可用 / 数据丢失分级):
|-----------------|-----------------------------------------------------------|---------------------------------------------------------------------------------------|------|
| 维度 | 指标名称 | 阈值超限核心影响 | 严重程度 |
| 内存相关 | redis_used_memory >85% maxmemory | 内存接近上限,Redis 即将触发键淘汰策略;若未配置合理淘汰规则,易引发 OOM 或服务阻塞 | 高 |
| | redis_used_memory_dataset >90% | 实际业务数据占用内存接近临界,非数据集内存(如缓冲区、元数据)无冗余,易触发内存溢出 | 高 |
| | redis_used_memory_dataset_perc >95% | 数据集占已用内存比例极高,内存资源被业务数据占满,几乎无扩展空间,性能急剧下降 | 极高 |
| | redis_mem_fragmentation_ratio <1.0 | 内存碎片率低于 1.0(实际物理内存使用 > 分配给 Redis 的内存),系统内存不足,易 OOM 崩溃 | 极高 |
| | redis_mem_fragmentation_ratio >1.5 | 内存碎片率过高,内存利用率极低,明明配置了足够内存却频繁触发淘汰 / 溢出,资源浪费 | 中 |
| | redis_evicted_keys >0 | 已触发 Redis 键淘汰策略,业务数据被主动删除(非过期),可能导致数据丢失、业务异常 | 高 |
| | redis_mem_aof_buffer >100MB | AOF 写缓冲区过大,刷盘时会产生大量 IO,阻塞 Redis 主线程,引发请求延迟飙升 | 中 |
| | redis_maxmemory ==0 | 未设置内存上限,Redis 无节制占用系统内存,可能导致服务器整体 OOM、进程被系统杀死 | 极高 |
| 性能 / 延迟 | redis_instantaneous_ops_per_sec <100 | QPS 过低,说明 Redis 几乎无请求(业务异常)或服务未正常提供能力 | 中 |
| | redis_instantaneous_ops_per_sec >10000 | QPS 过高,Redis 主线程压力过载,请求排队、延迟增加,甚至无法响应新请求 | 高 |
| | redis_keyspace_hitrate <0.9 | 缓存命中率低于 90%,大量请求穿透到后端数据库,引发 DB 压力飙升、整体业务响应变慢 | 高 |
| | redis_expired_stale_perc >10% | 过期键未及时清理的比例过高,无效数据占用内存,且清理过期键时消耗 CPU 资源 | 中 |
| | redis_cmdstat_usec_per_call >1ms | 单命令平均执行耗时超过 1ms,命令执行效率低(如大 key 操作、复杂计算),拖慢整体性能 | 中 |
| | redis_used_cpu_sys >80% | Redis 占用系统 CPU 超过 80%,CPU 资源耗尽,命令执行阻塞,所有请求延迟大幅增加 | 高 |
| | redis_latency_percentiles_us(P50>1ms/P95>5ms/P99>10ms) | 核心请求延迟超标:- P50>1ms:半数请求响应慢,用户感知卡顿;- P95>5ms:高频慢请求,业务超时风险;- P99>10ms:极端慢请求,可能触发业务熔断 | 中→高 |
| | redis_slowlog_count >10 | 慢查询日志数量激增,说明存在大量耗时命令(如 keys *、hgetall),持续消耗 CPU / 内存 | 中 |
| | redis_latest_fork_usec >1s | fork 操作耗时超过 1 秒(用于 RDB/AOF 重写),fork 期间 Redis 主线程阻塞,请求完全无响应 | 高 |
| 持久化 | redis_aof_last_bgrewrite_status !=ok | AOF 后台重写失败,AOF 文件持续膨胀,占用磁盘空间,且重启时恢复数据可能失败 / 不完整 | 高 |
| | redis_aof_last_write_status !=ok | AOF 写操作失败,数据持久化失效,一旦 Redis 崩溃,未刷盘的数据会永久丢失 | 极高 |
| | redis_rdb_last_bgsave_status !=ok | RDB 备份失败,失去数据快照恢复能力,若 AOF 也异常,数据无兜底保障 | 高 |
| | redis_rdb_last_bgsave_time_sec >60 | RDB 备份耗时超过 60 秒,备份期间占用大量 IO/CPU,阻塞业务请求,且备份效率极低 | 中 |
| | redis_rdb_changes_since_last_save >100 万 | 上次 RDB 后数据变更超 100 万条,若此时 Redis 崩溃,会丢失大量未备份数据 | 高 |
| 客户端 | redis_connected_clients >80% maxclients | 连接数接近上限,新客户端请求被拒绝,业务无法建立新连接,出现连接超时 / 失败 | 高 |
| | redis_blocked_clients >0 | 存在被阻塞的客户端(如 BLPOP/BRPOP 等阻塞命令),若阻塞数持续增加,会占用连接资源 | 中 |
| | redis_client_recent_max_input_buffer >50MB | 客户端输入缓冲区超限,可能是大请求 / 慢消费导致,占用大量内存,且易触发缓冲区溢出 | 高 |
| | redis_client_recent_max_output_buffer >50MB | 客户端输出缓冲区超限(如大量数据返回给客户端但未读取),内存被占满,引发淘汰 / OOM | 高 |
| | redis_rejected_connections >0 | 已拒绝新客户端连接(达到 maxclients 上限),业务直接无法访问 Redis | 极高 |
| 主从 / 集群 | redis_connected_slaves < 预期数量 | 从节点数量不足,读写分离失效,主节点压力陡增;且失去数据冗余,主节点故障则数据风险 | 高 |
| | redis_master_last_io_seconds_ago >10 | 主从节点超过 10 秒无 IO 交互,主从同步可能中断,从节点数据滞后 | 中 |
| | redis_master_link_status !=up | 主从连接断开,从节点停止同步,从库数据过期,无法承接读请求 / 故障切换 | 高 |
| | redis_replication_lag >60 | 主从复制延迟超过 60 秒,从节点数据严重滞后,若主节点故障,切换后会读到过期数据 | 高 |
| | redis_sync_full >0 | 触发全量同步(主从),消耗主节点大量 CPU/IO/ 带宽,主节点性能下降,且同步期间从库不可用 | 中 |
| | redis_cluster_slots_covered <16384 | 集群未覆盖全部 16384 个槽位,部分槽位无节点承接,对应槽位的请求直接失败 | 极高 |
| | redis_cluster_state !=ok | 集群状态异常(如槽位迁移失败、主节点故障),整个集群无法正常提供服务 | 极高 |
| | redis_failed_nodes >0 | 集群内存在故障节点,槽位分布异常,请求可能路由失败,集群可用性下降 | 高 |
| 可用性 | redis_up ==0 | Redis 进程未运行,服务完全不可用,所有业务请求失败 | 极高 |
| | redis_loading ==1 | Redis 正在加载 RDB/AOF 文件,加载期间无法处理任何请求,服务暂时不可用 | 中 |
| | redis_ping_use_seconds | ping 命令响应耗时异常,说明 Redis 主线程阻塞,服务响应能力下降 | 中 |
关键总结
- 最紧急风险 :redis_up==0、redis_rejected_connections>0、redis_cluster_state!=ok、redis_aof_last_write_status!=ok 等直接导致服务不可用 / 数据丢失的指标,需立即处理;
- 核心风险:内存类(如 evicted_keys>0、maxmemory==0)、主从 / 集群异常类指标,易引发连锁反应(性能→数据→服务);
- 预警类风险:QPS/CPU/ 延迟类指标超限,虽不会立即故障,但长期会导致性能劣化,需提前优化(如拆分大 key、扩容内存)。