每个服务端在启动时默认都是主节点,而命令行配置的从节点只是暂时性的,也就是在重启后,就会变为主节点,但是在设置为从节点之后,就会自动复制主节点的所有内容,这个自动复制过程称为 全量复制,而复制完之后在主节点添加数据过程中,从节点依次复制,称为 增量复制

因为每个启动的服务都是主节点,所以配置一主二从只需要将两个节点更改为从节点,slaveof host 端口号
(1)端口6380配置为6379的从节点

(2)端口6381配置为6379的从节点

(3)主节点显示

注意:这里的命令行配置的一主二从的有效期在从节点没有重启时生效。
问:上面使用命令行配置从节点不是永久性的,如何配置永久性的?
答:配置文件配置

配置文件配置的从节点,服务启动多少台主节点就会显示多少个从节点,也就是如果配置两个从节点,但是实际上有一个从节点没有启动,那么主节点显示的节点信息就会只显示只有一个从节点。
slaveof no one
需要注意的是,在取消绑定后,数据不会清除,且如果是配置文件配置的,那么在重启之后就会自动恢复为从节点
所以可以通过手动设置的方法来配置宕机时,手动选举主节点

第二种模式,将第三个节点设置为第二个的从节点,第二个节点为第一个的从节点,这样子在第一个节点宕机的时候,就可以通过 slaveof no one 来手动选举主节点了
主节点宕机时,手动选举主节点自然是不方便,不管从节点是通过命令行配置还是通过配置文件方式,所以有了 哨兵模式
哨兵 可理解为一个中间件,由哨兵来决定,而哨兵可设置多个,也就是设置一个哨兵集群,每个哨兵之间有联系又监督着启动的redis服务。
在redis的安装目录中有 redis-sentinel sentinel以为哨兵,所以其实redis是有哨兵模式的,是在redis2.8提出的。
下面配置一个单哨兵模式来模拟自动选举:
单机,端口6379为master,6380、6381为salver
(1)配置配置文件 sentinel.conf
sentinel monitor myredis 127.0.0.1 6379 1
这个文件是自己创建的
(2)将redis集群全部服务都启动
(3)上面的配置文件启动redis-sentinel
src/redis-sentinel src/redisConfig/sentinel.conf

(4)将redis6379服务关闭


当选举出来新的master后,宕机的redis服务如果恢复,会变为从节点,而原本的配置文件内容也会更变

且会自动检测新的master,当master再次宕机,会再次选举