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不一定是这样类接受引用,根据使用不同的连接池不同而不同