1. $ yum -y install gcc $ yum -y install gcc-c++
  2. $ wget http://download.redis.io/releases/redis-5.0.4.tar.gz
  3. $ tar -zvxf redis-5.0.4.tar.gz
  4. $ cd redis-5.0.4
  5. $ make

 

 

3.1复制3份redis.conf文件并分别命名为slave-7001.conf,slave-7002.conf和slave-7002.conf。然后修改它们如下

  1. # 服务器端口号,主从分别修改为7001 7002 7003
  2. port 7001
  3. # 使得Redis可以跨网络访问
  4. bind 0.0.0.0
  5. # 配置reids的密码
  6. requirepass "111111"
  7. # ----------------下面两个配置只需要配置从节点(slave) ,-------------------------------
    #----------------- 建议主节点也配置,因为后面的哨兵(如果主服务器down后重启也可以把它当成从服务器)--------------
  8. # 配置主服务器地址、端口号
  9. replicaof 127.0.0.1 7001
  10. # 主服务器密码
  11. masterauth "111111"

说明1:三份文件分别指定不同的端口号,目的是在一台机器上可以启动3个redis实例。

说明2: requirepass 和 masterauth 指定连接主从服务器的密码

说明3: replicaof 指定主服务器的地址

备注:建议3个文件都设置

3.2 启动这三台服务器

  1. $ ./src/redis-server slave-7001.conf
  2. $ ./src/redis-server slave-7002.conf
  3. $ ./src/redis-server slave-7003.conf

3.3 查看主从搭建信息

3.3.1 通过redis-cli工具连接redis服务

 

  简单的主从集群有个问题,就是主节点挂了之后,无法从新选举新的节点作为主节点进行写操作,导致服务不可用。所以接下来介绍Sentinel(哨兵)功能的使用。哨兵是一个独立的进程,哨兵会实时监控master节点的状态,当master不可用时会从slave节点中选出一个作为新的master,并修改其他节点的配置指向到新的master。

 

 

4.1 搭建步骤

步骤一:将sentinel.conf文件复制三份并分别命名为sentinel1.conf,sentinel2.conf和sentinel3.conf,并分别修改配置

  1. #--------------最小配置--必配-------
  2. sentinel monitor mymaster 127.0.0.1 7001 2
  3. sentinel down-after-milliseconds mymaster 60000
  4. sentinel failover-timeout mymaster 180000
  5. sentinel parallel-syncs mymaster 1
  6. #--------------可选设置--开启脚本------
  7. sentinel notification-script mymaster /var/redis/notify.sh
  8. sentinel client-reconfig-script mymaster /var/redis/reconfig.sh

步骤二:开启哨兵

  1. $ ./src/server-sentinel sentinel1.conf
  2. $ ./src/server-sentinel sentinel2.conf
  3. $ ./src/server-sentinel sentinel3.conf

备注:亦可用 redis-server /path/to/sentinel.conf --sentinel开启哨兵

校验:然后手动关闭主节点的redis服务,并查看两个slave信息是否有一个变成了master。

  1. spring:
  2. redis:
  3. sentinel:
  4. master: mymaster
  5. nodes: 192.168.1.167:26379,192.168.1.167:26380,192.168.1.167:26381
  6. host: 192.168.1.164
  7. port: 7001
  8. database: 0
  9. password: <password>

备注:当SpringBoot连接的主服务器dwon后,Springboot会根据哨兵模式自动连接到新的主服务器

 
版权声明:本文为jinliang374003909原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/jinliang374003909/p/13170486.html