springboot连接redis并动态切换database的实现方法
作者:长久悠悠
这篇文章主要介绍了springboot连接redis并动态切换database,本文主为通过修改ConnectionFactory从而达到动态切换database的效果,结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
众所周知,redis多有个db,在jedis中可以使用select方法去动态的选择redis的database,但在springboot提供的StringRedisTemplate中确,没有该方法,好在StringRedisTemplate预留了一个setConnectionFactory方法,本文主为通过修改ConnectionFactory从而达到动态切换database的效果。
springboot连接redis
pom.xml文件中引入spring-boot-starter-redis,版本可自行选择
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>1.3.8.RELEASE</version> </dependency>
application.properties
#redis配置 spring.redis.database=0 spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password=pwd spring.redis.timeout=0 spring.redis.pool.max-active=8 spring.redis.pool.max-idle=8 spring.redis.pool.max-wait=-1 spring.redis.pool.min-idle=0
TestCRedis.java
@RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = Application.class) public class TestCRedis{ protected static Logger LOGGER = LoggerFactory.getLogger(TestCRedis.class); @Autowired private StringRedisTemplate stringRedisTemplate; @Test public void t1(){ ValueOperations<String, String> stringStringValueOperations = stringRedisTemplate.opsForValue(); stringStringValueOperations.set("testkey","testvalue"); String testkey = stringStringValueOperations.get("testkey"); LOGGER.info(testkey); } }
运行TestCRedis.t1(),控制台打印“testvalue”redis连接成功
redis动态切换database
首先使用redis-cli,在redis的0、1、2三个库中,分别设置test 的值,分别为;0、1、2
TestCRedis.java
@RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = Application.class) public class TestCRedis{ protected static Logger LOGGER = LoggerFactory.getLogger(TestCRedis.class); @Autowired private StringRedisTemplate stringRedisTemplate; @Test public void t1(){ ValueOperations<String, String> stringStringValueOperations = stringRedisTemplate.opsForValue(); stringStringValueOperations.set("testkey","testvalue"); String testkey = stringStringValueOperations.get("testkey"); LOGGER.info(testkey); } public void t2() { for (int i = 0; i <= 2; i++) { JedisConnectionFactory jedisConnectionFactory = (JedisConnectionFactory) stringRedisTemplate.getConnectionFactory(); jedisConnectionFactory.setDatabase(i); stringRedisTemplate.setConnectionFactory(jedisConnectionFactory); ValueOperations valueOperations = stringRedisTemplate.opsForValue(); String test = (String) valueOperations.get("test"); LOGGER.info(test); } }
运行TestCRedis.t2(),控制台分别打印 “0、1、2”,database切换成功
到此这篇关于springboot连接redis并动态切换database的文章就介绍到这了,更多相关springboot连接redis动态切换database内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- Springboot 2.6集成redis maven报错的坑记录
- springboot 如何使用jedis连接Redis数据库
- 关于Springboot2.x集成lettuce连接redis集群报超时异常Command timed out after 6 second(s)
- springboot连接Redis的教程详解
- springboot2整合redis使用lettuce连接池的方法(解决lettuce连接池无效问题)
- Springboot2.X集成redis集群(Lettuce)连接的方法
- 解决spirngboot连接redis报错:READONLY You can‘t write against a read only replica的问题