设置主从关系
通过 info replication 命令查看节点角色设置主从关系slaveof 主库ID 主库端口 如: slaveof 127.0.0.1 6379 主库宕机后,想让从库停止与其他数据库同步,转成主库,slaceof on one, 其他数据路想连接它,还要执行设置主库命令,否者会一直等着老主库
常见方式,一主二仆,薪火相传
薪火相传与一主二仆
#一主二仆 只有一层分支,一对多 #薪火相传 中间的slave会是下一个slave的Master,slave同样可以接收其他slaves的连接和同步的请求,那么slave作为下一个链条中的master,可以有效的减轻master的写压力 中间的slave角色仍然是slave 中途变更转向,会清除之前的数据,重新建立拷贝最新的
常见问题
#1、不论从机是什么时候设置的,只要设置为从机,会把主机的全部复制一遍(包括设置之前的) #2、读写分离,从机只有读的权限,从机的写操作是不被允许 #3、主机宕机后,从机的角色也不会改变,等主机恢复后,一切照旧 #4、从机断开后,会断开连接,下次需要再连接,除非写入配置文件
练习
修改配置文件
首先将redis.conf 配置文件复制三份,通过修改端口分别模拟三台Redis服务器。
然后我们分别对这三个redis.conf 文件进行修改。
①、修改 daemonize yes
表示指定Redis以守护进程的方式启动(后台启动)
②、配置PID文件路径 pidfile
表示当redis作为守护进程运行的时候,它会把 pid 默认写到 /var/redis/run/redis_6379.pid 文件里面
③、配置端口 port
④、配置log 文件名字
⑤、配置rdb文件名
依次将 6380redis.conf 、6381redis.conf 配置一次,则配置完毕。
接下来我们分别启动这三个服务。
通过命令查看Redis是否启动:
接下来通过如下命令分别进入到这三个Redis客户端:
redis-cli -p 6379 redis-cli -p 6380 redis-cli -p 6381
设置主从关系
①、通过 info replication 命令查看节点角色
我们发现这三个节点都是扮演的 Master 角色。那么如何将 6380 和 6381 节点变为 Slave 角色呢?
②、选择6380端口和6381端口,执行命令:SLAVEOF 127.0.0.1 6379
我们再看 6379 节点信息:
这里通过命令来设置主从关系,一旦服务重启,那么角色关系将不复存在。想要永久的保存这种关系,可以通过配置redis.conf 文件来配置。