平常使用的时候,redis的db是写死的,如何去动态的修改呢?
解决办法
@Component public class RedisDBChangeUtil {
@Autowired private StringRedisTemplate redisTemplate; public void setDataBase(int num) { LettuceConnectionFactory connectionFactory = (LettuceConnectionFactory) redisTemplate.getConnectionFactory(); if (connectionFactory != null && num != connectionFactory.getDatabase()) { connectionFactory.setDatabase(num); this.redisTemplate.setConnectionFactory(connectionFactory); connectionFactory.resetConnection(); } } }
@RestController @RequestMapping("/") public class RedisStringController {
@Resource private StringRedisTemplate stringRedisTemplate; @Resource private RedisDBChangeUtil redisDBChangeUtil; @PostMapping("/changeDb") public String changeDb(){ //默认的插入 stringRedisTemplate.opsForValue().set("name","db0"); //插入db1 redisDBChangeUtil.setDataBase(1); stringRedisTemplate.opsForValue().set("name1","db1"); //插入db2 redisDBChangeUtil.setDataBase(2); stringRedisTemplate.opsForValue().set("name2","db2"); return "ok"; } }
SpringBoot-技术专区-Redis同数据源动态切换db
原文:https://www.cnblogs.com/liboware/p/13224348.html