Centos7 安装redis集群哨兵模式

一:整体哨兵模式规划


redis节点规划:6381 (master), 6382 (slave),6383 (slave),6384 (slave)

sentinel模式节点规划:26381 , 26382

二:Redis主从安装步骤

1.单机版Redis安装

2.在/usr/local/目录下创建 redis-sentinel文件夹

3.进入/usr/local/redis-sentinel目录下,创建文件夹 master-6381 ,slave-6382 ,slave-6383 ,slave-6384 ,sentinel-26381 ,sentinel-26382

4.把单机版安装目录下redis.conf拷贝到目录下 master-6381 slave-6382 slave-6383 slave-6384

5.把单机版安装目录下 sentinel.conf 拷贝到 sentinel-26381 ,sentinel-26382

6.修改/usr/local/redis-sentinel/master-6381/目录下 redis.conf 配置文件 (主服务器)

  • bind 192.168.1.62 --修改成自己的IP地址
  • port 6381 --主服务器的端口号
  • daemonize yes --后台启动
  • pidfile /var/run/redis_6381.pid -- redis 后台启动的时候,会在/var/run/默认生成一个pid文件
  • protected-mode no--保护模式关闭,否则启动哨兵的时候,无法正常运行(还可以设置密码的方式)
  • dir /usr/local/redis-sentinel/master-6381/data --数据保存目录

7.修改/usr/local/redis-sentinel/slave-6382/目录下 redis.conf 配置文件 (从服务器)

  • bind 192.168.1.62 --修改成自己的IP地址
  • port 6382 --主服务器的端口号
  • daemonize yes --后台启动
  • pidfile /var/run/redis-6382.pid -- redis 后台启动的时候,会在/var/run/默认生成一个pid文件
  • protected-mode no--保护模式关闭,否则启动哨兵的时候,无法正常运行(还可以设置密码的方式)
  • dir /usr/local/redis-sentinel/slave-6382/data --数据保存目录
  • slaveof 192.168.1.62 6381 --主服务器的IP 主服务器端口号

8.其他从服务器类似步骤7

9.此时启动会包错误,因为需要在相应的位置创建data文件夹

10.步骤9执行完后,就可以正常运行了

/usr/local/redis/bin/redis-server /usr/local/redis-sentinel/master-6381/redis.conf 
/usr/local/redis/bin/redis-server /usr/local/redis-sentinel/slave-6382/redis.conf 
/usr/local/redis/bin/redis-server /usr/local/redis-sentinel/slave-6383/redis.conf 
/usr/local/redis/bin/redis-server /usr/local/redis-sentinel/slave-6384/redis.conf 

10.启动完成后,连接主服务器客户端,查看主服务器信息 info

/usr/local/redis/bin/redis-cli -h 192.168.1.62 -p 6381

11.在主服务器节点上添加一个值,看看是否能同步到从服务器上去

三.在二完成的基础上添加哨兵监控主节点

1.修改/usr/local/redis-sentinel/sentinel-26381目录下的sentinel.conf

  • port 26381     -- 指定sentinel端口号
  • daemonize yes -- 指定sentinel为后台启动
  • protected-mode no --关闭保护模式
  • sentinel monitor mymaster [主服务器节点IP] [主服务器节点port] [几个哨兵检测到主节点失联数量]  -- 至少有几个哨兵检测到主服务器故障了,才进行故障迁移 ,实例 sentinel monitor mymaster 192.168.1.62 6381 2
  • sentinel down-after-milliseconds mymaster 30000--指定Sentinel判定Master断线的时间 
  • logfile "/usr/local/redis-sentinel/sentinel-26381/sentinel-26381.log"
  • dir "/usr/local/redis-sentinel/sentinel-26381/data"

2.修改/usr/local/redis-sentinel/sentinel-26382目录下的sentinel.conf

  • port 26382     -- 指定sentinel端口号
  • daemonize yes -- 指定sentinel为后台启动
  • protected-mode no --关闭保护模式
  • sentinel monitor mymaster [主服务器节点IP] [主服务器节点port] [几个哨兵检测到主节点失联数量]  -- 至少有几个哨兵检测到主服务器故障了,才进行故障迁移 ,实例 sentinel monitor mymaster 192.168.1.62 6381 2
  • sentinel down-after-milliseconds mymaster 30000--指定Sentinel判定Master断线的时间 
  • logfile "/usr/local/redis-sentinel/sentinel-26382/sentinel-26382.log"
  • dir "/usr/local/redis-sentinel/sentinel-26382/data"

3.启动哨兵,并查看哨兵日志

/usr/local/redis/src/redis-sentinel /usr/local/redis-sentinel/sentinel-26381/sentinel.conf 
/usr/local/redis/src/redis-sentinel /usr/local/redis-sentinel/sentinel-26382/sentinel.conf 
tail -f /usr/local/redis-sentinel/sentinel-26381/sentinel-26381.log 
 tail -f /usr/local/redis-sentinel/sentinel-26382/sentinel-26382.log 

4.直接把master节点进程kill掉,再次观看哨兵日志

在杀掉主节点进程的时候,没有发生主从切换,并且日志打印如下,解决方法时 在sentinel.conf配置文件中添加 protected-mode no (这个的前提是redis.conf文件的配置也是 protected-mode no )

5.解决4的问题后,重新启动sentinel,杀掉主节点进程和查看sentinel日志

    1) 主节点从6381变成6384

 

2)把节点6384的进程杀掉,主节点变成6382了

 

展开阅读全文

没有更多推荐了,返回首页