0
点赞
收藏
分享

微信扫一扫

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

主从复制方案

角色

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

4. Redis-主从复制+哨兵_redis主从复制

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

4. Redis-主从复制+哨兵_redis_02


4. Redis-主从复制+哨兵_数据库_03


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的源码包下

4. Redis-主从复制+哨兵_redis主从复制_04

2. 修改 sentinel.conf 文件

sentinel monitor mymaster 192.168.136.175 6379 1 

4. Redis-主从复制+哨兵_redis主从复制_05

sentinel down-after-milliseconds mymaster 10000

4. Redis-主从复制+哨兵_数据库_06

sentinel parallel-syncs mymaster 2

4. Redis-主从复制+哨兵_数据库_07

sentinel failover-timeout mymaster 30000

4. Redis-主从复制+哨兵_redis集群_08

3. 启动三台 redis 服务器

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

4. Redis-主从复制+哨兵_主从复制_09

配置完成!!!


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

4. Redis-主从复制+哨兵_redis_10

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

4. Redis-主从复制+哨兵_redis集群_11

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

4. Redis-主从复制+哨兵_主从复制_12

关闭 176,主节点切回 175

4. Redis-主从复制+哨兵_主从复制_13


举报

相关推荐

0 条评论