实现
public class ConnectionPoolWatcher implements InitializingBean {
@Autowired(required = false)
private ClientResources clientResources;
@Override
public void afterPropertiesSet() throws Exception {
if (clientResources != null) {
clientResources.eventBus().get()
.subscribe(e -> log.info("event:{}", e));
}
}
}
lettuce事件
1. Redis 连接相关事件:
ConnectEvent:当尝试与 Redis 建立连接之前,就会发出这个事件。
ConnectedEvent:连接建立的时候会发出的事件,包含建立连接的远程 IP 与端口以及使用的 Redis URI 等信息,对应 Netty 其实就是 ChannelHandler 中的 channelActive 回调一开始就会发出的事件。
ConnectionActivatedEvent:在完成 Redis 连接一系列初始化操作之后(例如 SSL 握手,发送 PING 心跳命令等等),这个连接可以用于执行 Redis 命令时发出的事件。
ConnectionDeactivatedEvent:在没有任何正在处理的命令并且 isOpen() 是 false 的情况下,连接就不是活跃的了,准备要被关闭。这个时候就会发出这个事件。
DisconnectedEvent:连接真正关闭或者重置时,会发出这个事件。
ReconnectAttemptEvent:Lettuce 中的 Redis 连接会被维护为长连接,当连接丢失,会自动重连,需要重连的时候,会发