springboot集成redis主-从模式

一、环境准备
(硬件资源:Linux+redis-5.0.3+springboot project)

  1. 需redis 3.0以上安装包,这里面以redis-5.0.3为示例。
  2. 下面讲解在一台linux上模拟1主、2从、3哨兵的主从模式(实际应用中应需3台服务器,其中一台放1主和1哨兵,另外两台放1从1哨兵)。
  3. redis安装这里不做介绍,解压tar包后需要编译make。

二、redis主、从服务配置

  1. 建6379、6381、6382文件夹用于单独配置redis.conf(这里以redis-server端口为文件夹)
    springboot集成redis主-从模式_第1张图片
    2.将redis-5.0.3/redis.conf配置文件分别拷入到三个文件夹中。
    springboot集成redis主-从模式_第2张图片
    3.配置一主二从redis.conf文件,默认6379为主,6381、6382为从。配置规则如下:
    springboot集成redis主-从模式_第3张图片
    注:如果出现redis-cli连接不上,可以将bind设置0.0.0.0,意思是所有终端均可以连接(但须谨慎使用bind)。
    如果设置redis的密码则需要设置masterauth和requirepass,不设置默认不需配置。
    4.启动主从服务(需指定启动redis.conf配置文件)
    redis-5.0.3/src/redis-server 6379/redis.conf &
    redis-5.0.3/src/redis-server 6381/redis.conf &
    redis-5.0.3/src/redis-server 6382/redis.conf &
    查看进程:
    在这里插入图片描述
    验证redis服务info Replication:
    客户端登录 redis-5.0.3/src/redis-cli -h 本机ip -p 6379 -a 密码
    springboot集成redis主-从模式_第4张图片
    从上述可以看到6379为主服务,存在两个slave,端口为6381、6382。至此主从配置完毕。

三、哨兵配置
(哨兵的主要作用是当master节点down了,这个时候我们可以选举一个从充当主节点继续提供服务,注:主可读可写,从一般仅可读)

  1. 新建一个sentinel目录,用于放置哨兵的一些配置。
    springboot集成redis主-从模式_第5张图片
    2.进入sentinel目录,建26379、26381、26382文件夹(sentinel哨兵默认的监听端口为26379)
    将redis-5.0.3/sentinel.conf文件分别copy到新建的26379、26381、26382三个文件夹下。
    3.分别配置sentinel.conf文件,配置规则如下
    springboot集成redis主-从模式_第6张图片
    其中sentinel monitor 主IP 6379 2 (2表示当有两个哨兵举手表决就可执行)
    4.sentinel启动
    redis-5.0.3/src/redis-sentinel sentinel/26379/sentinel.conf &
    redis-5.0.3/src/redis-sentinel sentinel/26381/sentinel.conf &
    redis-5.0.3/src/redis-sentinel sentinel/26382/sentinel.conf &
    启动后查看进程:
    springboot集成redis主-从模式_第7张图片

四、springboot集成主从配置

  1. springboot集成所需jar包
    springboot集成redis主-从模式_第8张图片
    2.springboot application.properties配置redis主从集成
    springboot集成redis主-从模式_第9张图片

至此所有配置完毕。

五、模拟master down后,两个slave发生的变化

1.kill掉master服务进程
springboot集成redis主-从模式_第10张图片
2.查看之前两个slave服务,端口号为6381、6382。
端口号为6381的slave服务:
springboot集成redis主-从模式_第11张图片
端口号为6382的slave服务:
springboot集成redis主-从模式_第12张图片

通过上述模拟可看出,6382 slave服务自动从slave切换成了master redis服务。所以redis主-从模式可自动解决master down的情况,以保证系统正常运行。
如将之前master结点重新启动只需要将原来master结点redis.conf配置上slaveof 本机IP 6382即可,此时启动的6379端口的服务已成为了slave服务。

你可能感兴趣的:(IT开发)