美文网首页框架建设收集
Redis哨兵机制的实现及与SpringBoot的整合

Redis哨兵机制的实现及与SpringBoot的整合

作者: 追风人聊Java | 来源:发表于2021-12-11 10:44 被阅读0次

    1. 概述

    前面我们聊过Redis的读写分离机制,这个机制有个致命的弱点,就是主节点(Master)是个单点,如果主节点宕掉,整个Redis的写操作就无法进行服务了。

    为了解决这个问题,就需要依靠“哨兵”,今天我们就来聊聊哨兵机制如何实现,且如何与SpringBoot进行整合。

    2. 场景描述

    主服务器IP:192.168.1.144

    从服务器A IP:192.168.1.22

    从服务器B IP:192.168.1.8

    这三台服务器上都已经安装好了Redis环境,安装方法参见我的另一篇文章《Redis的安装、基本使用以及与SpringBoot的整合》。

    这三台服务器也搭建好了读写分离(主从复制)的机制,搭建方法参见我的另一篇文章《Redis的读写分离》。

    分别在这三台机器上,配置哨兵,实现高可用。

    注意:哨兵节点的个数一定是奇数,否则会出问题。

    3. Redis哨兵机制的实现

    上述的3台服务器都需要配置哨兵,配置方法相同。

    3.1 进入Redis的安装目录

    # cd /home/redis-6.2.5

    3.2 拷贝哨兵配置文件到Redis工作目录

    # cp sentinel.conf /usr/local/redis/

    3.3 修改哨兵配置文件

    # cd /usr/local/redis/

    # vim sentinel.conf

    3.4 配置文件修改细节

    image

    sentinel monitor zhuifengren-master 192.168.1.144 6379 2

    最后一个参数 2,根据哨兵的节点计算,公式为 N/2 + 1,N代表哨兵节点数量,例如:哨兵节点数量是3,则这里设置为 2

    image image image

    3.5 为哨兵创建工作目录

    # cd /usr/local/redis/

    # mkdir sentinel

    3.6 主节点的Redis配置中,增加Redis的密码

    # cd /usr/local/redis/

    # vim redis.conf

    image

    3.7 启动哨兵

    3台Redis服务器的哨兵配置是一样的,配置好后,我们来启动3台服务器上的哨兵。

    # cd /usr/local/redis

    # redis-sentinel sentinel.conf

    image

    此时哨兵机制就搭建完成,当Master宕掉,其中一台Slave会升级成Master处理写服务。

    4. 与SpringBoot整合

    在之前的基础上修改yml文件即可

    spring:
      redis:
        database: 1
        password: zhuifengren
        sentinel:
          master: zhuifengren-master
          nodes: 192.168.1.144:26379,192.168.1.22:26379,192.168.1.8:26379
    

    5. 综述

    今天我们聊了一下Redis的哨兵机制,以及如何与SpringBoot进行整合,希望能对大家有所帮助。

    希望大家多多评论交流,共同成长。

    关注追风人聊Java,每天更新Java干货。

    相关文章

      网友评论

        本文标题:Redis哨兵机制的实现及与SpringBoot的整合

        本文链接:https://www.haomeiwen.com/subject/gzrkfrtx.html