概述
先简单记录一下解决方案,以后有空详细补下断点过程。
我用的版本如下
<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踩坑所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复