SpringBoot整合Redis[哨兵版]

SpringBoot整合Redis[哨兵版]

修改配置文件

server:
  port: 8080
spring:
  application:
    name: redis
  redis:
#    host: 192.168.247.141
#    port: 6379
    password: 123456
    database: 0
    # 哨兵模式
    sentinel:
      master: redis-master
      nodes: 192.168.247.191:26379,192.168.247.192:26379,192.168.247.193:26379

使用方式和依赖不变, 只有配置改变了而已, 所以, 我们一般开发都是单节点模式开发, 然后上线后修改配置即可

这里可以额外的提一下, 就是在开发项目的时候一般可以写多个配置文件, 通过active激活不同的配置, 达到多环境配置问题解决

一般我们会定义

application.yml

application-local.yml  : 本地配置,自己随便搞

application-dev.yml    : 开发环境, 一般不用动, 我们一般开发都是公用一个容器的, 应为一般都绑定了域名, 如果要用自己的容器的话,配置需要改一下

application-test.yml    : 测试环境, 一般也不用动, 如果测试要弄新的环境, 让他自己去弄, 管他个der

application-uat.yml  : UAT是用户体验环境, 一般公司没有, 只有特定的项目需要, 环境一般不懂, 为了给用户点点点的

application-pro.yml  : 线上环境, 一般这个我们会设置权限, 并且直接配置在配置中心, 不让开发人员看, 只有MASTER才可以

这个也是项目的开发,部署流程 本地->开发->测试->用户体验->上线->验收~

<think>好的,用户想在Spring Boot整合Redis哨兵模式。我需要先回顾一下相关的知识,确保步骤正确。首先,记得Redis哨兵模式是用来实现高可用性的,当主节点故障时,哨兵会自动选举新的主节点。 首先,用户需要添加Redis的依赖。Spring Boot通常使用spring-boot-starter-data-redis,这个依赖包含了Lettuce和Jedis客户端。不过现在默认是Lettuce,如果需要用Jedis的话,可能需要排除Lettuce并引入Jedis的依赖。这点需要确认,但用户的问题可能不需要具体到客户端选择,所以先提基本的依赖。 接下来是配置文件。在application.yml或application.properties中配置Redis哨兵的相关信息。关键的配置项包括哨兵节点的地址、主节点的名称,以及可能的密码和数据库编号。例如,spring.redis.sentinel.master设置主节点名称,spring.redis.sentinel.nodes列出所有哨兵的地址和端口。 然后,可能需要配置Redis连接工厂,比如使用JedisConnectionFactory或者LettuceConnectionFactory,具体取决于使用的客户端。不过Spring Boot可能已经自动配置了这些,用户只需要正确设置属性即可。如果用户需要自定义配置,比如连接池参数,这时候可能需要手动创建配置类。 另外,用户可能需要了解如何测试哨兵配置是否生效。例如,可以编写一个测试用例,尝试连接Redis并执行一些操作,然后模拟主节点故障,看看应用是否能自动切换到新的主节点。不过这可能超出基础整合的范围,属于进阶内容。 还要考虑密码的情况。如果Redis设置了密码,需要在配置中添加spring.redis.password属性。同时,哨兵本身可能有独立的密码,这时候可能需要额外的配置,比如在spring.redis.sentinel.password中设置。这点需要根据Redis本和Spring Boot的支持情况来确认,不同本可能有不同的配置方式。 用户可能还关心如何验证配置是否正确。可以启动应用,查看日志是否有连接哨兵的记录,或者通过健康检查端点/actuator/health查看Redis的状态。另外,使用RedisTemplate进行操作时,如果能够成功读写,说明配置正确。 另外,记得在配置哨兵节点时,每个节点的格式是host:port,多个节点用逗号分隔。例如,spring.redis.sentinel.nodes=sentinel1:26379,sentinel2:26380,sentinel3:26381。 最后,可能还需要提示用户关于本兼容性的问题,不同本的Spring BootRedis的支持可能有差异,建议查看官方文档或者参考引用的教程视频,比如提到的雷丰阳的课程,确保配置方法与当前使用的Spring Boot本兼容。 总结步骤应该是:添加依赖→配置哨兵信息→测试连接。过程中要注意配置项的正确性,以及可能需要的客户端选择。如果有高级需求,比如连接池设置或异常处理,可能需要进一步配置。</think>以下是在Spring Boot整合Redis哨兵模式的实现步骤: ### 1. 添加依赖 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 推荐使用Spring Boot 2.7.x及以上本,支持更完善的哨兵配置[^2]。 ### 2. 配置哨兵信息 ```yaml spring: redis: password: your-redis-password sentinel: master: mymaster # 主节点名称 nodes: - sentinel1:26379 - sentinel2:26380 - sentinel3:26381 password: sentinel-password # 哨兵服务密码(可选) ``` ### 3. 配置连接工厂 ```java @Configuration public class RedisConfig { @Bean public RedisConnectionFactory redisConnectionFactory( RedisSentinelConfiguration sentinelConfig) { return new JedisConnectionFactory(sentinelConfig); } } ``` ### 4. 使用RedisTemplate ```java @Autowired private RedisTemplate<String, Object> redisTemplate; public void setValue(String key, Object value) { redisTemplate.opsForValue().set(key, value); } ``` ### 关键特性说明: 1. **自动故障转移**:当主节点不可用时,哨兵会自动选举新主节点 2. **读写分离**:通过`@ReadOnly`注解实现只读操作路由到从节点 3. **拓扑刷新**:默认每10秒自动更新节点状态信息[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值