我是靠谱客的博主 阳光流沙,最近开发中收集的这篇文章主要介绍SpringBoot切换Redis的DB踩坑,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

先简单记录一下解决方案,以后有空详细补下断点过程。

我用的版本如下

<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>2.2.0.RELEASE</version>

有一个需求需要切换DB写入数据,然后在网上找到的大多数解决方案如下:

LettuceConnectionFactory lettuceConnectionFactory = (LettuceConnectionFactory) redisTemplate.getConnectionFactory();
lettuceConnectionFactory.setDatabase(2);
redisTemplate.setConnectionFactory(lettuceConnectionFactory );
lettuceConnectionFactory.resetConnection();

使用后发现不起作用,于是断点追根溯源,发现原来resetConnnection()方法只会释放Connection对象,RedisClient中的redisUrl对象的属性并未刷新,导致重新生成的Connection对象的DB值仍未改变,随意切换未生效。

随后寻找刷新RedisClient的方法,最终解决方案如下:

lettuceConnectionFactory.afterPropertiesSet(),在最后调用此方法即可刷新RedisClient,刷新时会自动取lettuceConnectionFactory内部属性的DB值填充,DB切换成功。

 

最后

以上就是阳光流沙为你收集整理的SpringBoot切换Redis的DB踩坑的全部内容,希望文章能够帮你解决SpringBoot切换Redis的DB踩坑所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部