spring-data-redis2.7.10如何自定义多个不同的redis库
时间: 2024-01-21 12:17:54 浏览: 73
spring中使用redis
在 Spring Data Redis 中,可以通过配置多个 RedisConnectionFactory 实例来访问不同的 Redis 数据库。
下面是一个简单的配置示例,其中定义了两个 RedisConnectionFactory 实例,并分别用于访问名为 "redis1" 和 "redis2" 的两个 Redis 数据库:
```java
@Configuration
public class RedisConfig {
@Bean
public RedisConnectionFactory redisConnectionFactory1() {
RedisStandaloneConfiguration config = new RedisStandaloneConfiguration("localhost", 6379);
LettuceConnectionFactory factory = new LettuceConnectionFactory(config);
return factory;
}
@Bean
public RedisConnectionFactory redisConnectionFactory2() {
RedisStandaloneConfiguration config = new RedisStandaloneConfiguration("localhost", 6380);
LettuceConnectionFactory factory = new LettuceConnectionFactory(config);
return factory;
}
@Bean(name = "redisTemplate1")
public RedisTemplate<String, Object> redisTemplate1() {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory1());
template.setDefaultSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
@Bean(name = "redisTemplate2")
public RedisTemplate<String, Object> redisTemplate2() {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory2());
template.setDefaultSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
}
```
上面的代码中,我们先定义了两个 RedisConnectionFactory 实例,分别连接到不同的 Redis 数据库,然后再定义两个 RedisTemplate 实例,分别使用不同的 RedisConnectionFactory 实例。
在使用 RedisTemplate 时,可以根据名称指定要使用哪个 RedisTemplate 实例,例如:
```java
@Service
public class MyService {
@Autowired
@Qualifier("redisTemplate1")
private RedisTemplate<String, Object> redisTemplate1;
@Autowired
@Qualifier("redisTemplate2")
private RedisTemplate<String, Object> redisTemplate2;
public void foo() {
redisTemplate1.opsForValue().set("key1", "value1");
redisTemplate2.opsForValue().set("key2", "value2");
}
}
```
上面的代码中,我们使用 @Qualifier 注解指定了要注入的 RedisTemplate 实例的名称,从而实现了对不同 Redis 数据库的访问。
阅读全文