之前用Redis2.x的时候就发现 jedisConnectionFactory.setDatabase(db); 这个方法已经过时了,不能用了,但是那时候没有用到这个功能,也就没在意,最近又更新了一下最新版本,有同事用到这块了,问我有没有什么办法,于是找到下面这个。
1.x.x版本中是这样的:
/**
* @return : void
* @Author : Yanqiang
* @Date : 2019/1/18
* @Param : [db]
* @Description : 切换不同db PS:用完一定要切换回原来的DB,不然其他的没办法用
*/
public void switchRedisDb(int db) {
JedisConnectionFactory jedisConnectionFactory = (JedisConnectionFactory) stringRedisTemplate.getConnectionFactory();
jedisConnectionFactory.setDatabase(db);
stringRedisTemplate.setConnectionFactory(jedisConnectionFactory);
ValueOperations valueOperations = stringRedisTemplate.opsForValue();
}
2.x.x 版本以上 用下面的这个方法,不管用哪个,一定要记得用完切换回原来的库
/**
* @Author : Yanqiang
* @Date : 2019/5/21
* @Param : [db]
* @return : void
* @Description : Redis切换不同db PS:用完一定要切换回原来的DB,不然其他的没办法用
*/
public void redisConnectionFactory(int db) {
LettuceConnectionFactory jedisConnectionFactory = (LettuceConnectionFactory) redisTemplate.getConnectionFactory();
jedisConnectionFactory.setDatabase(db);
redisTemplate.setConnectionFactory(jedisConnectionFactory);
jedisConnectionFactory.resetConnection();
ValueOperations valueOperations = redisTemplate.opsForValue();
}