Redis的主从复制

一、什么是主从复制

主从复制,就是主机数据更新后根据配置和策略,自动同步到备用机上面去的master/slaver机制。master以写为主,slaver以读为主。一主多从形式。

主从复制的用处:一是读写分离,扩展性能,提高访问速度;二是容灾快速恢复。但不能减小内存的压力,只能减小读写操作的访问压力。

二、如何进行Redis的主从复制

1.讲究一个原则,配从不配主;主服务能写也能读,从服务能读不能写

  • 拷贝多个redis.conf文件include
  • 开启daemonize  yes (后台启动模式)
  • pid文件名字pidfile (可以不设置)
  • 指定端口port
  • log文件名字
  • dump.rdb文件名字,名字需要改掉,几台redis服务器之间最好不要重复。
  • appendonly 关掉或者换名字

2.查看主从复制的相关信息

//通过该指令可以查看主从复制的详情
info replication

信息如下图所示:

3.设置主从关系的指令

//将该台服务器设置成某服务器的从服务器
slaveof  主服务器的ip  主服务器的端口号port

设置成功后再用查看指令进行查看,可获得如下信息

注意:

  1. 当从服务器宕机之后,重新启动时需要重新设置主从模式,即 slaveof  主服务器的ip  主服务器的端口号port 指令。否则从服务器无法做到与主服务的数据一致,重新设置了主从关系之后,从服务器会自动复制主服务器的数据来完成主从数据一致性。
  2. 若主机发生宕机情况,而从服务器不会上位成主服务器,而是选择原地待命,可用 查看命令查看,即此时项目只能进行读的操作,无法进行写的操作。但当主机重新连上之后,依然可以进行主从复制,保持数据一致性。切记,若其中任意一台服务器进行了flushdb的操作导致数据的丢失,那么其他服务器的数据也同时丢失
  3. 可以通过配置文件进行配置,实现永久的主从复制关系,而不不是一旦从服务器发生宕机,需要手动的确立主从关系。如图所示,masterip表示主服务器的ip,masterport表示主服务器的端口号,将前面的#去掉,重启从服务器,就会永久生效主从关系。

三、主从复制的原理

  • 每次从机联通后,都会向主机发送sync(同步)指令。
  • 主机在接到sync指令后,就会立即向从机发送RDB文件。
  • 从机收到RDB文件之后,就会立即进行全盘加载。
  • 之后主机的每次写操作,都会立刻发送给从机,从机执行相同的命令。

四、主从复制的去中心化,薪火相传

常规情况下,我们都是一主多从,但当主服务器宕机之后,从服务器是原地待命,等待主服务器重新连上,此时整个项目就只能进行读的操作不能进行写的操作,这对于用户而言是不友善的。

因此我们需要做到当主机宕机之后,剩下的某一台从机可以升级为主机,此时我们就需要将其中一台从机执行取消主从关系的命令。

slaveof no noe

再将剩下的从机执行 slaveof  主服务器的ip  主服务器的端口号port  重新绑定主机。

五、哨兵模式

从以上四中我们需要人工手动的去进行重新绑定主从关系,但使用哨兵模式之后,redis会自动进行监听,若主机宕机,会在剩下的从机中根据投票数选取一台作为主机,并重新绑定主从关系。因此只要配置了哨兵模式,就永远会有一个主服务器在运行

哨兵模式必须是基于主从复制的模式上来进行实现的。

配置哨兵模式:

在redis.conf的同级目录下新建一个文件:sentinel.conf 文件。

在配置文件中填写以下内容(只需要一句话即可):

//mymaster表示自己给监控对象取的名字,随便取。
//127.0.0.1 6379 表示哨兵监视的主服务器
//最后的 1 表示至少一个哨兵同意迁移的数量,一般设置的哨兵数量都是 奇数,才好进行投票嘛,不会出现平票的可能
sentinel monitor mymaster 127.0.0.1 6379 1

启动哨兵,执行指令:

redis-sentinel /redis.conf的路径/sentinel.conf

哨兵模式的特点:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值