spring-bootredis读写分离配置
时间: 2024-09-23 19:11:33 浏览: 42
Spring Boot集成Redis时,实现读写分离通常需要设置两个Redis实例,一个用于读取操作,另一个用于写入操作。以下是基本的配置步骤:
1. **添加依赖**:
首先,在`pom.xml`文件中添加Spring Data Redis和 lettuce-cluster(支持Redis集群)的依赖,如果是单机环境也可以只使用lettuce-core。
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 如果使用的是集群 -->
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-cluster</artifactId>
</dependency>
```
2. **配置Redis客户端工厂**:
使用`@EnableCaching`注解开启Spring Data Redis缓存,然后创建一个自定义的RedisConnectionFactory,指定主从服务器地址。
```java
@Bean
public LettuceConnectionFactory redisConnectionFactory() {
ClusterClientConfig config = new ClusterClientConfig();
// 添加读取和写入的Redis节点列表,例如:
List<HostAndPort> nodes = Arrays.asList(
new HostAndPort("localhost", 6379), // 主库
new HostAndPort("localhost", 6380)); // 从库
config.setNodeSelectionStrategy(NodeSelectionStrategy.DYNAMIC);
return new LettuceConnectionFactory(config);
}
```
3. **配置RedisTemplate或JedisTemplate**:
创建RedisTemplate或者JedisTemplate,并将自定义的RedisConnectionFactory注入到模板中。
```java
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(factory);
// ...其他配置如key-value编码等...
return template;
}
```
4. **使用**:
现在你可以通过`@Cacheable`, `@CacheEvict`等注解进行缓存操作,它们会自动选择合适的Redis实例执行。
阅读全文