java配置多个redis数据源
时间: 2024-09-10 11:27:21 浏览: 100
在Java中,配置多个Redis数据源通常是为了分布式系统的设计,每个数据源可以连接到不同的Redis实例,以实现读写分离、高可用等需求。Spring Boot提供了一个方便的方式来管理这样的场景,你可以使用`@ConfigurationProperties`和`@Bean`注解来创建多个RedisTemplate实例。
首先,你需要添加Spring Data Redis依赖,并创建一个配置类:
```java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
@Configuration
public class RedisConfig {
@Bean
public JedisConnectionFactory primaryDataSource() {
// 配置主数据源Redis连接信息,比如localhost:6379
return new JedisConnectionFactory();
}
@Bean
public JedisConnectionFactory secondaryDataSource() {
// 配置备选数据源Redis连接信息,如localhost:6380
return new JedisConnectionFactory();
}
@Bean
public RedisTemplate<String, String> primaryRedisTemplate(JedisConnectionFactory factory) {
RedisTemplate<String, String> template = new RedisTemplate<>();
template.setConnectionFactory(factory);
return template;
}
@Bean
public RedisTemplate<String, String> secondaryRedisTemplate(JedisConnectionFactory factory) {
RedisTemplate<String, String> template = new RedisTemplate<>();
template.setConnectionFactory(factory);
return template;
}
}
```
然后,在需要使用数据源的地方,你可以通过`@Qualifier`来指定特定的数据源:
```java
@Autowired
@Qualifier("primaryRedisTemplate")
private RedisTemplate<String, String> primaryTemplate;
@Autowired
@Qualifier("secondaryRedisTemplate")
private RedisTemplate<String, String> secondaryTemplate;
```
阅读全文