4. Redis-主从复制+哨兵

版权声明:本文为博主原创文章,转载请附上本文链接。 https://blog.csdn.net/Willson_L/article/details/82896442

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 主从复制配置

主从复制方案

角色 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之后哨兵功能,稳定起来。

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

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

4.4.1 哨兵实现步骤:

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

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

2. 修改 sentinel.conf 文件

sentinel monitor mymaster 192.168.136.175 6379 1 

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

猜你喜欢

转载自blog.csdn.net/Willson_L/article/details/82896442
今日推荐