运行期间动态切换Redis数据库

public void selectDB(int db) {
        LettuceConnectionFactory factory =
                (LettuceConnectionFactory) redisTemplate.getConnectionFactory();
        factory.setDatabase(db);
        factory.resetConnection();
        redisTemplate.setConnectionFactory(factory);
    }

注意几点问题

1.setDatabase之后必须reset否则无法切换,因为连接池连接初始化了,必须reset

2.并发存在问题,setDatabase是线程不安全的,存在脏数据,请加锁

3.LettuceConnectionFactory不一定是这样类接受引用,根据使用不同的连接池不同而不同

全部评论

相关推荐

面试摇了我吧:啊哈哈面试提前五个小时发,点击不能参加就是放弃
点赞 评论 收藏
分享
09-29 11:19
门头沟学院 Java
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务