运行期间动态切换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不一定是这样类接受引用,根据使用不同的连接池不同而不同

全部评论

相关推荐

10-25 00:32
香梨想要offer:感觉考研以后好好学 后面能乱杀,目前这简历有点难
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务