运行Redis monitor命令时周期出现的ping请求是由什么触发的

结论
这个每5秒一次的Redis PING请求大概率和Spring Actuator无关,具体原因和排查方向如下:
1. 先排除Actuator的可能性
你已经在配置中显式声明了management.health.redis.enabled=false,Spring Boot内置的RedisHealthIndicator健康检查组件会被完全禁用,不会主动发起任何Redis请求。
哪怕你开启了probes存活/就绪探针,默认的探针本身仅会返回进程级别的状态,不会调用Redis客户端的PING逻辑,只有当你自定义探针实现时依赖了Redis状态,才会产生相关请求。
2. 常见的PING请求来源排查
- Redis客户端内置保活心跳:这是概率最高的原因。Spring Boot默认集成的Lettuce Redis客户端,默认的心跳周期就是5秒,用于维持和Redis服务端的长连接避免被断开,这个逻辑是客户端内置的,和Actuator没有关联。你可以核对配置项
spring.redis.lettuce.ping-period确认,Jedis客户端的testWhileIdle相关空闲检测配置也会触发周期PING。 - 其他依赖组件的调用:检查你的项目是否用到了基于Redis的缓存、Session共享、分布式锁等组件,这类组件自身也可能会有保活检测逻辑。
- 第三方服务的健康检查:确认是否有容器编排探针、运维监控系统等其他服务,在定期探测你的Redis实例。
快速验证方法
你可以临时停掉当前Spring Boot服务,再通过redis-cli monitor观测是否还有周期PING,如果消失就可以确认请求来自你的服务,再修改Redis客户端的心跳配置,观测PING间隔是否同步变化就能确认来源。
内容的提问来源于stack exchange,提问作者Mustafa Güven
相关产品推荐
相关产品推荐

