首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring boot中的Redis缓存上下文监听器如何知道redis缓存是否启用?

问spring boot中的Redis缓存上下文监听器如何知道redis缓存是否启用?
EN

Stack Overflow用户
提问于 2017-01-04 23:14:03
回答 1查看 1.1K关注 0票数 0

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

现在我解释一下我遇到的问题,如果我的redis缓存服务器突然停止,我们想知道如何得到我的redis缓存服务器宕机的通知。因此,我们需要解决方案/示例java应用程序来使用redis缓存侦听器上下文或类似内容来获取通知。

EN

回答 1

Stack Overflow用户

发布于 2017-01-04 23:46:56

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

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

代码语言:javascript
复制
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) {

    }
});

在使用Spring Data Redis时,从LettuceConnectionFactory检索RedisClient可能有点棘手,因为它是一个私有字段。因此,它需要反射。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41467122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档