4. Redis-主从复制+哨兵

4.1 主从复制

  1. master能够拥有多个 slave
  2. 多个 slave 能够链接同一个 master 外,还能够链接到其余的 slave
  3. 主从复制不会阻塞 master 在同步数据时,master能够继续处理client请求
  4. 提供系统的伸缩性

 

4.2 主从复制过程

  1. slave 与 master 创建链接,发送 sync 同步命令。
  2. master 会开启一个后台进程,将数据库快照保存到文件中,同事 master 主进程会开始收集新的写命令并缓存
  3. 后台完成保存后,就将文件发送给 slave
  4. slave 将此文件保存到本地上

 

4.3 主从复制配置

主从复制方案redis

角色 ip 端口  
master 192.168.136.175 6379  
slave 192.168.136.176 6379  
slave 192.168.136.178 6379  

1. 安装redis数据库

2. 配置 redis.conf 文件,master 不要修改配置,只须要修改 slave 的。slaveof 192.168.136.175 6379缓存

3. 重启三台服务器,在 master 进入redis-cli,输入 info 命令,看到如下信息,证实配置成功。服务器

 

 

4.4 哨兵

有了主从复制的实现之后,咱们若是想对主从服务器进行监控,那么在 redis2.6 以后提供了,一个哨兵的机制,在2.6版本中为哨兵1.0版本。在2.8以后哨兵功能,稳定起来。spa

哨兵的含义就是监控 redis 的运行状况,其主要功能有两点:server

  1. 监控主数据库和从数据库是否正常运行。
  2. 主数据库出现故障时,能够自动将从数据库转为主数据库,实现自动切换。

 

4.4.1 哨兵实现步骤:

在任意一台从服务器(slave)启动 sentinel.conf (其实应该在第四台机器上启动)blog

1. 复制 sentinel.conf 文件到 /opt/redis/etc 中。sentinel.conf 文件在redis的源码包下进程

2. 修改 sentinel.conf 文件ip

sentinel monitor mymaster 192.168.136.175 6379 1 ci

sentinel down-after-milliseconds mymaster 10000

sentinel parallel-syncs mymaster 2

sentinel failover-timeout mymaster 30000

3. 启动三台 redis 服务器

4. 启动哨兵 ./redis-server /opt/redis/etc/sentinel.conf --sentinel &

配置完成!!!

 

查看哨兵监控的信息,在任意一台机器均可以查看。 ./redis-cli -h 192.168.136.176 -p 26379 info Sentinel

关闭 主节点服务器 (192.168.136.175),配置了哨兵的服务器上自动打印出提示。

从新开启 175,可是节点不会把主节点切回175上。

关闭 176,主节点切回 175