Redis主从复制
主从复制架构仅仅用来解决数据的冗余备份,从节点仅仅用来同步数据。如果主节点因为某些原因出现了故障导致宕机,无法接收数据,那么从节点也会与主节点断开连接。
无法解决:master(主)节点出现故障的自动故障转移
1.主从架构图
2.演示——搭建主从复制架构(做之前要拍快照,防止出现问题 版本:redis7.0.0 )
步骤
-
创建三个目录代表三台机器,master、node1、node2
mkdir master
-
拷贝redis安装目录下源码中的redis.conf文件分别到三个目录中。
[root@master redis-install]# cp redis-7.0.0/redis.conf ./master/
-
修改三台机器的配置,修改端口号,开启远程连接,配置主节点是谁
- master 将本地的ip地址注释掉 #bind 127.0.0.1 port 7000(这是主节点的端口号,数字自己设置) protected-mode no(将外部连接保护改成no) - node1 将本地的ip地址注释掉 #bind 127.0.0.1 port 7001 protected-mode no 将replicaof <masterip> <masterport> 改成 replicaof 192.168.137.150(主机ip地址) 7000(主节点端口号) - node2 将本地的ip地址注释掉 #bind 127.0.0.1 port 7002 protected-mode no 将replicaof <masterip> <masterport> 改成 replicaof 192.168.137.150(主机ip地址) 7000(主节点端口号)
-
启动三台机器进行测试
cd /usr/local/soft/bigdata17/redis-install redis-server ./master/redis.conf redis-server ./node1/redis.conf redis-server ./node2/redis.conf
-
分别连接主节点和两个从节点
redis-cli -p 7000
可以观察到在主节点设置一个key/value值,在从节点能直接获取,说明主节点中的数据复制到了从节点中
-
如果我将主节点的进程杀死,从节点会发生什么,会不会代替主节点的工作
问题:
很明显,从节点全部与主节点断开了连接,如果我们想在主节点宕机的时候让从节点出来接替主节点的工作,成为新的主节点该如何实现呢,请关注伍点下一篇博客--redis架构之哨兵机制与集群。