redis主从复制

配置从库,不配置主库

命令

info replication : 查看角色信息

SLAVEOF ip port : 作为从库的配置


1.修改其他redis.conf的信息,包括端口号,log文件名,dump.rdb名称,即生成的文件不要具有相同名称

2.window下不能开启daemonize,因此也没有pid文件

3.开启redis服务
在这里插入图片描述

在这里插入图片描述

4.使用redis-cli -p port 链接redis服务,刚开始时,两个redis都是master,可以使用info replication 查看角色信息

在这里插入图片描述

5.选择端口为6379的redis 为master,使用SLAVEOF ip port(主数据库ip和端口) 让6380端口选择6379,并作为6379的从数据库

在这里插入图片描述

6.现在,主从复制就搭建成功了,在主数据库(master)写入数据,数据会复制到从数据库(slave).并且slave只能读数据,不能写数据,这也实现了读写分离。

7.现在使用shutdown挂掉master,主从关系不会改变,从数据库会一直等待主数据库重新连接,master_link_status为down,当主数据库重新连接,master_link_status为up,主从关系还在

在这里插入图片描述

8.但是,当master挂掉以后,我们不可能一直等到master被修复,我们需要从剩下的从数据库中选择新的master

方法1:使用SLAVEOF no one,清除一个slave之前的角色状态,将slave角色改为master,剩余数据库再使用SLAVEOF ip port 选择追随的master,(也可以直接在配置文件中进行配置)这种方法需要人实时监控,手动修改,这样当然是不科学的。

方法2:哨兵模式(sentinel),新建sentinel.conf文件,使用以下语句进行监控,可以同时监控多个master

sentinel monitor 被监控的数据库的名称(随便起) ip  port 1
例子:
sentinel monitor mymaster 127.0.0.1  6379 1

使用以下命令启动监控

在这里插入图片描述

启动后,sentinel.conf文件会发生改变:

sentinel myid 7d99cb709255eefab961f6b345b860ea333da9ba
# Generated by CONFIG REWRITE
port 26379
dir "F:\\redis"
sentinel monitor mymaster 127.0.0.1 6379 1
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel known-slave mymaster 127.0.0.1 6380
sentinel current-epoch 0

启动后,当master挂掉后,会从剩余的从数据库推选出新的master,如果之前的master重新连接上来,将作为新master的slave

在这里插入图片描述

以上,redis的主从复制就可以说是成功实现了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值