美文网首页
Spring Boot Redis 在需要关闭redis的情况下

Spring Boot Redis 在需要关闭redis的情况下

作者: 黑暗大Fa师 | 来源:发表于2020-03-21 15:42 被阅读0次

以下是个便利贴文。
首先 , 先说说,这篇文章所要解决的问题是什么:
主要就是在,我们突然需要在关闭 redis的时候 进行 运行我们的 spring boot 的程序的 时候 , 这时候 都会突然报错 。 主要的 报错类型就基本就是 redis 未连接的报错类型。然后导致程序挂掉。

主要的原因便是:spring boot redis 的自动配置类(名字忘了,当然,你也可以想办法替换掉这个自动类,也是解决问题的方案之一)。这个类会强迫我们去生成一个对应的redisTemplate , 这个redisTemplate在创建的时候,会需要将 redisConnectionFactory set 进去 。 这时候,会触发 redisConnectionFactory 的 getConnect方法(有时候可能是另外一个获取 集群连接的接口) 。倘若你没有正常连接。程序就会报错,把你程序搞崩。因此,如果你想解决这个问题,最好就从这个 redisConnectionFactory 入手。

redisConnectionFactory 只是一个接口 , 官方目前( 应该说我目前 ) 使用的是 LutteConnectionFactory( 名字太长了记不住,差不多是这个名字) 这个对应的 实体类。我们可以直接继承这个类(我曾经尝试过implements redisConnectionFactory 接口 , 然后内核使用 Lutte ,但是不知道报什么错失败了, 可能是我哪里出了什么小问题 , 可以自己尝试一下),然后改写 , 只需要 getConnection 这个方法 , 使用 try 来 不让报错 下沉把程序搞崩溃了就行 , 下面写个小例子,不一定要按照我的方案来写

  public RedisConnection getConnection(){
        try{
            return super.getConnection();
        }catch( Exception ex ){
          return null;
        }
   }

相关文章

网友评论

      本文标题:Spring Boot Redis 在需要关闭redis的情况下

      本文链接:https://www.haomeiwen.com/subject/mgnyyhtx.html