Springboot+(linux)redis哨兵模式实现

Springboot+(linux)redis哨兵模式实现 

下面是主从redis服务

6379
6380 从1
6381 从2

下面是多个哨兵 

26379 哨兵1
26380 哨兵2
26381 哨兵3

  1. windows下redis压缩包(本文使用的是5.0.13)
    Redis(点我跳转页面下载)
  2. 解压(不知道命令的可以百度)
    tar -zxvf redis-5.0.13.tar.gz
  3. 安装或升级gcc
    1)linux会自带gcc编译器,但听说redis4.0以上需要升级gcc
    2)查看gcc版本命令:gcc -v
    Springboot+(linux)redis哨兵模式实现
    图中我的已经是高版本的
    3)升级gcc版本命令
     yum -y install centos-release-scl && yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils && scl enable devtoolset-9 bash

  4. 安装只后跳转到redis解压目录,会发现很多文件,首先我来配置主从(1主2从)
    1.  (配置主)找到redis.conf,修改以下几点,有些可能是redis已经设置好的,最好是检查一下
      0)port 6379(设置端口)
      1)注释掉# bind 127.0.0.1(作用是为了让外面能访问到)
      2)daemonize yes(将daemonize 设置成yes)
      3)requirepass 123456(设置密码)
      4)masterauth 123456(设置主redis密码,因为他自己可能会挂掉,当他再复活的时候,master已不是他了)
      5)replica-read-only no(把从redis只读状态关掉)

    2. (配置从1)找到刚修改的redis.conf,把他复制两份,文件名分别叫redis-6380.conf,redis-6381(为了看起来舒服,把原来的redis.conf文件,名字改成redis-6379.conf)
      0)port 6380(设置端口)
      1)注释掉# bind 127.0.0.1(作用是为了让外面能访问到)
      2)daemonize yes(将daemonize 设置成yes)
      3)requirepass 123456(设置密码)
      4)masterauth 123456(设置主redis密码,因为他自己可能会挂掉,当他再复活的时候,master已不是他了)
      5)replica-read-only no(把从redis只读状态关掉)
      6)slaveof 192.168.98.123 6379(设置主从同步,非常重要)

    3. (配置从2)
      0)port 6381(设置端口)
      1)注释掉# bind 127.0.0.1(作用是为了让外面能访问到)
      2)daemonize yes(将daemonize 设置成yes)
      3)requirepass 123456(设置密码)
      4)masterauth 123456(设置主redis密码,因为他自己可能会挂掉,当他再复活的时候,master已不是他了)
      5)replica-read-only no(把从redis只读状态关掉)
      6)slaveof 192.168.98.123 6379(设置主从同步,非常重要)

  5. 然后我们来配置哨兵(多个哨兵改一下端口就行了)
    1.(配置哨兵1)找到sentinel.conf修改以下几点,有些可能是redis已经设置好的,最好是检查一下
    0)port 26379(设置哨兵端口)
    1)daemonize yes(将daemonize 设置成yes)
    2)dir "/usr/local/redis/redis-5.0.13"
    3)logfile "26379.log"(这两步是设置日志输出的)
    4)sentinel monitor mymaster 192.168.98.123 6379 1
    5)sentinel auth-pass mymaster People2000(这个必须在上一条的下面,不然项目使用的时候会报错)
    6)sentinel down-after-milliseconds mymaster 5000(多久时间检查一次redis生命状态)
    ------------------------------------------------
    2.(配置哨兵2,哨兵3)找到刚修改的sentinel.conf,把他复制两份,文件名分别叫sentinel-26380.conf,sentinel-26381(为了看起来舒服,把原来的sentinel.conf文件,名字改成sentinel-26379.conf)
    0)port 26380/26381(设置哨兵端口,改成相应的端口就行)
    1)daemonize yes(将daemonize 设置成yes)
    2)dir "/usr/local/redis/redis-5.0.13"
    3)logfile "26380/81.log"(这两步是设置日志输出的,改成相应的日志文件,为了区分日志输出)
    4)sentinel monitor mymaster 192.168.98.123 6379 1
    5)sentinel auth-pass mymaster People2000(这个必须在上一条的下面,不然项目使用的时候会报错)
    6)sentinel down-after-milliseconds mymaster 5000(多久时间检查一次redis生命状态)
     

  6. 接下来直接启动redis服务(现在是在redis安装目录的位置)
    1)启动主:redis-server redis-6379.conf
    2)启动从1:redis-server redis-6380.conf
    3)启动从2:redis-server redis-6381.conf
    查看主从关系
    连接redis命令:redis-cli -p 6379
    进去之后会要你输密码:auth 你自己设置的密码(注意“auth”与密码之间有个空格)
    再输入:info replication
    Springboot+(linux)redis哨兵模式实现
    如图可见,6379下面有两个从,分别是6380,6381

  7. 然后来启动哨兵(现在是在redis安装目录的位置)
    1)启动哨兵1:redis-sentinel sentinel-26379.conf &
    2)启动哨兵2:redis-sentinel sentinel-26380.conf &
    3)启动哨兵3:redis-sentinel sentinel-26381.conf &
    注意:加(&)这个符号后台运行

     

springboot配置redis哨兵:
 

spring:

  redis:
#    host: 192.168.98.123
#    port: 6379
    password: 123465# 密码(默认为空)
    timeout: 6000ms  # 连接超时时长(毫秒)
    lettuce:
      pool:
        max-active: 1000  # 连接池最大连接数(使用负值表示没有限制)
        max-wait: -1ms      # 连接池最大阻塞等待时间(使用负值表示没有限制)
        max-idle: 10      # 连接池中的最大空闲连接
        min-idle: 5       # 连接池中的最小空闲连接
    sentinel:
      master: mymaster
      nodes: 192.168.98.123:26379,192.168.98.123:26380,192.168.98.123:26381 #配置多个哨兵

其他跟单个redis一样,因为他有自动配置功能

当主挂了之后,一个从就会变成主,原来的主复活之后,就变成从了

上一篇:哨兵模式(工作中使用)


下一篇:网关流控实现原理 (gateway集成Sentinel )