SpringBoot连接Redis主从集群
时间: 2025-04-23 13:47:12 浏览: 30
### Spring Boot 连接 Redis 主从集群配置方法
#### 1. 添加依赖项
为了使Spring Boot项目能够连接并管理Redis主从集群,首先需要在`pom.xml`文件中添加必要的Maven依赖。这通常涉及引入`spring-boot-starter-data-redis`包以及可能的其他相关库。
```xml
<dependencies>
<!-- SpirngBoot 对 Redis 的支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
</dependencies>
```
此部分确保应用程序可以利用Spring Data Redis的功能来简化与Redis服务器之间的交互[^5]。
#### 2. 配置YAML文件
接着,在项目的`application.yml`或`application.properties`文件里定义具体的Redis连接设置。对于主从复制场景而言,除了基本的身份验证信息外,还需要指定多个节点地址以便实现负载均衡和故障转移功能。
```yaml
spring:
redis:
sentinel:
master: mymaster # 哨兵监控的主节点名称
nodes: localhost:26379,localhost:26380,localhost:26381 # 哨兵实例列表
timeout: 5000ms
lettuce:
pool:
max-active: 8
max-idle: 8
min-idle: 0
```
这里设置了哨兵模式下的Redis连接池参数,并指定了三个哨兵节点用于监测主数据库的状态变化情况[^3]。
#### 3. 创建自定义配置类
如果默认配置无法满足需求,则可以通过编写Java代码进一步定制化连接行为。下面是一个简单的例子展示了如何通过编程方式构建带有哨兵支持特性的`LettuceConnectionFactory`对象:
```java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisSentinelConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
@Configuration
public class RedisConfig {
@Bean
public LettuceConnectionFactory redisConnectionFactory() {
RedisSentinelConfiguration sentinelConfig = new RedisSentinelConfiguration()
.master("mymaster")
.sentinels(Arrays.asList(
new RedisNode().setHost("localhost").setPort(26379),
new RedisNode().setHost("localhost").setPort(26380),
new RedisNode().setHost("localhost").setPort(26381)));
return new LettuceConnectionFactory(sentinelConfig);
}
}
```
这段程序片段说明了怎样手动装配一个基于哨兵协议工作的工厂bean,它负责建立到目标Redis群集的实际链接[^1]。
#### 4. 使用模板接口操作数据
一旦完成了以上准备工作之后,就可以像平常一样借助于`RedisTemplate`或者更专业的字符串处理工具——`StringRedisTemplate`来进行键值存储的操作了。这些高级别的抽象层允许开发者专注于业务逻辑而不必关心底层网络细节。
```java
@Autowired
private StringRedisTemplate stringRedisTemplate;
// 示例:向Redis存入一条记录
stringRedisTemplate.opsForValue().set("key", "value");
```
上述代码段体现了如何轻松地将一对键值对保存至远程缓存系统内;当然也支持更多复杂的数据结构如哈希表、集合等类型的API调用[^2]。
阅读全文
相关推荐




















