Spring boot spring boot中的Redis缓存上下文侦听器如何知道Redis缓存是否已启动?

Spring boot spring boot中的Redis缓存上下文侦听器如何知道Redis缓存是否已启动?,spring-boot,redis-cache,Spring Boot,Redis Cache,我们有一个spring应用程序,其中redis缓存与数据库MySQL一起实现。在这里,我们使用redis缓存存储服务器验证的临时值,而不是每次命中数据库,因此每次命中数据库调用都会降低系统性能 现在,我解释了我在点击spring启动操作端点时遇到的问题, 如果我的redis缓存服务器突然停止,我们想知道如何获得我的redis缓存服务器已关闭的通知。因此,我们需要解决方案/示例java应用程序使用redis缓存侦听器上下文或类似内容获取通知 Redis不是这样工作的。事实上,没有远程服务会通知您的

我们有一个spring应用程序,其中redis缓存与数据库MySQL一起实现。在这里,我们使用redis缓存存储服务器验证的临时值,而不是每次命中数据库,因此每次命中数据库调用都会降低系统性能

现在,我解释了我在点击spring启动操作端点时遇到的问题,
如果我的redis缓存服务器突然停止,我们想知道如何获得我的redis缓存服务器已关闭的通知。因此,我们需要解决方案/示例java应用程序使用redis缓存侦听器上下文或类似内容获取通知

Redis不是这样工作的。事实上,没有远程服务会通知您的应用程序它已关闭。通常情况下,情况正好相反:如果您正在使用的服务是通过一个或多或少复杂的客户端访问的,那么您可能会利用客户端的功能

运行I/O或监视线程的异步客户机可以在这里提供帮助。更具体地说,这取决于您与Spring Boot和Redis一起使用的客户端。是一个根据请求做出反应的普通客户端。允许您注册在特定连接事件(如已连接/已断开连接)时调用的:

RedisClient redisClient = …;

redisClient.addListener(new RedisConnectionStateListener() {
    @Override
    public void onRedisConnected(RedisChannelHandler<?, ?> redisChannelHandler) {

    }

    @Override
    public void onRedisDisconnected(RedisChannelHandler<?, ?> redisChannelHandler) {

    }

    @Override
    public void onRedisExceptionCaught(RedisChannelHandler<?, ?> redisChannelHandler, Throwable throwable) {

    }
});
RedisClient RedisClient=…;
redisClient.addListener(新的RedisConnectionStateListener(){
@凌驾
public void onRedisConnected(RedisChannelHandler RedisChannelHandler){
}
@凌驾
公共void onRedisDisconnected(RedisChannelHandler RedisChannelHandler){
}
@凌驾
public void onRedisExceptionCaught(RedisChannelHandler RedisChannelHandler,Throwable Throwable){
}
});
使用Spring数据Redis时,从LettuceConnectionFactory中检索
RedisClient
可能有点棘手,因为它是一个私有字段。因此,它需要反思