redis的主从复制

 1.安装依赖的环境

redis的主从复制

2.编写配置文件,这里写了三个配置文件

redis的主从复制

 

细节:    引入redis.conf文件

              找到在redis.conf里面的pidfile

               端口号

              dbfilename 

每个文件代表着一个服务,端口号写完后要重新改一下,最后配置文件格式如下

redis的主从复制

3.启动服务

3.1

redis-server /myredis/redis6379.conf

3.2

启动客户端

redis-cli -p 6379

最后启动的服务如下

redis的主从复制

 

➢info replication    • 打印主从复制的相关信息

➢slaveof                  • 成为某个实例的从服务器

 

1>从机有了主机所有的key,所有的数据

2>从机只有读的权限

3>主机写东西从机可以get到

4>主机挂了,从机原地等待

5>从机下面可以再加从机

6>主机死了以后,可以手动让从机上位

        slaveof no one     反客为主  这样从机变主机

        从机可以写值,他的小弟也可以读他的值

redis的主从复制

➢复制原理 •

         每次从机联通后,都会给主机发送sync指令 • 主机立刻进行存盘操作,发送RDB文件,给从机 • 从机收到RDB文件后,进行全盘加载 • 之后每次主机的写操作,都会立刻发送给从机,从机执行相同的命令

➢  薪火相传 • 

        上一个slave可以是下一个slave的Master,slave同样可以接收其他 slaves的连接和同步请求,那么该slave作为了链条中下一个的 master, 可以有效减轻master的写压力,去中心化降低风险。 • 用 slaveof • 中途变更转向:会清除之前的数据,重新建立拷贝最新的 • 风险是一旦某个slave宕机,后面的slave都没法备份

 

哨兵模式       (自动的判断主机是否死亡,避免人工处理)

    定期骚扰主机,发指令ping看主机有没有回复pang住过没有pong根据投票数自动将从机转为主机

    当从机变主机时,这时候的主机(之前从机的设置的值将不存在,)

redis的主从复制

变主机后,

redis的主从复制

这个主机继承了之前从机所对应主机的数据。

 

     调整为一主二仆模式 • 自定义的/myredis目录下新建sentinel.conf文件 

     • 在配置文件中填写内容: sentinel monitor mymaster 127.0.0.1 6379 1 

      • 其中mymaster为监控对象起的服务器名称, 1 为 至少有多少个 哨兵同意迁移的数量。

 

开启哨兵模式-----》配置

redis的主从复制

在配置文件下加入如下配置,保存退出

redis的主从复制

启动哨兵模式

redis的主从复制

指向的为启动的哨兵启动的选项

执行,redis-sentinel /myredis/sentinel.conf

redis的主从复制

以前台的方式启动此处

主机挂了过十几秒出现下面情况,谁的优先级小谁先上位,哨兵对配置文件的修改如下加了slaveof 127.0.0.1 6381所以主机死了以后6381上位

redis的主从复制redis的主从复制

 

➢故障恢复

       新主登基

 从下线的主服务的所 有从服务里面挑选一 个从服务,将其转成 主服务 选择条件依次为: 

1、选择优先级靠前 的 

2、选择偏移量最大 的

 3、选择runid最小的 从服务 挑选出新的主服务之 后,sentinel 向原主 服务的从服务发送 slaveof 新主服务 的命 令,复制新master 群仆俯首 旧主俯首 当已下线的服务重新 上线时,sentinel会向 其发送slaveof命令, 让其成为新主的从 Redis的主从复制 优先级在redis.conf中slave-priority 100