概念 :
Redis 复制机制 能干的活 :
这里我们想要玩转 Redis复制 ,需要配置从机 .
注意 :只需要配置 从库 ,不需要配置主库
配置两台从机大致图 :
关于如何配置 等下代码案例的时候会一步一步的配置 ,这里先来看看 Redis 复制的基本命令.
说明 :
配置文件
图一 :
图二 :
图三 :
注意 : 上面拷贝的 6380 ,和 6381 对应的日志文件并没有修改 ,下面来修改一下.
另外 : 端口号也需要更改一下
启动 三台机器 :
启动完后 ,我们可以 来看看 主机 和 从机的 日志文件
日志看完 , 就来 使用我们的第一个命令 info replication
查看 复制节点的主从关系和配置信息.
下面我们来 在主机上 创建几个数据 看看 从机是否能够获取到创建的数据
到此 一主二仆 相关的配置与操作就完成了,下面我们来看几个问题 .
1. 从机可以执行写命令吗 ?
答案 : 不能
2.从机切入点问题
3. 主机 shutdown 后 , 从机会上位吗 ?
答案 : 从机不会上文 ,而是原地待命,等待主机重启归来
图二 :
看完这三个问题, 下面我们来看第二个命令 : slaveof
slaveof 主机 IP 主机端口号
: 这个命令是 用来设置 从属关系的 ,
上面我们是通过 配置文件中的 replicaof
固定写死了 要跟随的主机 , 下面我们就通过 slaveof 来指定要跟随的主机 .
注意 : 通过 slaveof 配置的从属关系 ,会在宕机 或某种意外 使 从机 与 主机 master 断开之后 ,自动取消从属关系 . 如果要继续维持 从属关系 需要 在执行一遍 slaveof 命令.
图一 :
图二 :
图三 :
啥是薪火相传呢 ?
图一 :
图二 :
图三 :
下面提出一个问题 : slave1 相当于 slave2 的 主机, 那么 slave 1 是能够进行写操作呢 ?
简单一句话 就是 :老子不干了 , 我不当小弟了, 我要当大哥 .
通过 slaveof no one
命令 , 使当前数据库停止与其他数据库的同步, 转变为 主机 master
.
复制延时 , 信号衰弱
2. master 挂了 ,会导致无法进行写操作 . 从机 slave 只能进行读操作 , master 挂了之后 会一直等待 主机重新上线.
针对 从机 在 主机挂了之后 ,一直等待 主机上线 这个 行为 ,就引出我们接下来要学习的 Redis 哨兵 .
简单说一下为啥需要哨兵 , 因为 主机挂了,我们不可能一直让 从机等待 ,所以需要在从机中选一个机器让它当主机,但是从机在默认情况
下是不会自动重新选一个 主机的 ,此时就需要一个 人 来从 从机中选出一个 主机 选一个老大, 所以 哨兵就应运而生.