Redis -- 哨兵

 哨兵

 

 

 

搭建哨兵集群

 1.创建哨兵文件夹

mkdir s1 s2 s3

 2.配置哨兵配置文件 sentinel.conf

port 27001
sentinel announce-ip 192.168.99.100
sentinel monitor mymaster 192.168.99.100 7001 2
sentinel down-after-millseconds mymaster 5000
sentinel failover-timeout mymaster 60000
dir "/tmp/s1"

解读:

        port 27001 : 是当前sentinel 实例的端口

         sentinel monitor mymaster 192.168.99.100 7001 2 : 指定主节点信息

                mymaster : 主节点名称,自定义,随便写

                192.168.99.100 7001:主节点的ip和端口

                 2 :选举master时的quorum值

拷贝sentinel.conf到s2,s3目录

 修改s2,s3的信息(端口和目录)

 启动哨兵

redis-sentinel s1/sentinel.conf
redis-sentinel s2/sentinel.conf
redis-sentinel s3/sentinel.conf

 

 测试

        尝试让master节点7001宕机,查看sentinel日志:

 

 7002的日志

 7003的日志

7001重启启动后的日志:

 代码

1.引入依赖

        <!-- springboot redis配置 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

2.配置sentinel相关信息

spring:
  redis:
    sentinel:
      master: mymaster #执行master名称
      nodes: #指定redis-sentinel集群信息
        - 192.168.99.100:27001
        - 192.168.99.100:27002
        - 192.168.99.100:27003

在有哨兵模式,项目中不需要配置Redis的地址,因为Redis节点信息会动态改变. 连接Redis的事情都交给sentinel哨兵

3.配置主从读写分离

 

@Configuration
public class SentinalConfig {
    @Bean
    public LettuceClientConfigurationBuilderCustomizer clientConfigurationBuilderCustomizer(){
        return clientConfigurationBuilder -> clientConfigurationBuilder.readFrom(ReadFrom.REPLICA_PREFERRED);
    }
}
    @Autowired
    private StringRedisTemplate stringRedisTemplate;


    @Test
    void testString() {
        //写操作将交给主节点
        stringRedisTemplate.opsForValue().set("name", "李四"); 
        //读操作交给从节点
        String value = stringRedisTemplate.opsForValue().get("name");
        System.out.println(value);
    }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值