Redis主从复制

一. 主从复制介绍:
一般来说,要将Redis运用于工程项目中,只使用一台Redis是万万不能的,原因如下:
从结构上,单个Redis服务器会发生单点故障,并且一台服务器需要处理所有的请求负载,压力较大;
从容量上,单个Redis服务器内存容量有限,就算一台Redis服务器内容容量为256G,也不能将所有内容用作Redis存储内存,一般来说,单台Redis最大使用内存不应该超过20G。
本文先讨论第一点的解决方案:Redis主从复制,第二点可以使用Redis集群解决(请参考后面的文章)。


二. 典型应用场景:
电子商务网站上的商品,一般都是一次上传,无数次浏览的,说专业点也就是”多读少写”。

对于这种场景,我们可以使如下这种架构:


如图中所示,我们将一台Redis服务器作主库(Matser),其他三台作为从库(Slave),主库只负责写数据,每次有数据更新都将更新的数据同步到它所有的从库,而从库只负责读数据。这样一来,就有了两个好处:
1)读写分离,不仅可以提高服务器的负载能力,并且可以根据读请求的规模自由增加或者减少从库的数量,棒极了;
2)数据被复制成了了好几份,就算有一台机器出现故障,也可以使用其他机器的数据快速恢复。

三. redis 主从复制特点: 

(1)、master可以拥有多个slave 
(2)、多个slave可以连接同一个 master 外,还可以连接到其他 slave 
(3)、主从复制不会阻塞 master,在同步数据时,master可以继续处理 client请求 
(4)、提高系统的伸缩性 


接下来我们来实现一主一从模式:


四. redis 主从复制过程

当配置好 slave 后,slave 与 master 建立连接,然后发送 sync 命令。无论是第一次连接还是重新连接,master 都会启动一个后台进程,将数据库快照保存到文件中,同时 master 主进程会开始收集新的写命令并缓存。后台进程完成写文件后, master就发送文件给slave, slave将文件保存到硬盘上,再加载到内存中,接着 master就会把缓存的命令转发给 slave,后续master 将收到的写命令发送给 slave。如果 master 同时收到多个slave 发来的同步连接命令,master 只会启动一个进程来写数据库镜像,然后发送给所有的 slave。


五.如何配置

配置slave服务器很简单,只需要在 slave的配置文件中加入如下配置


在没有重启slave到redis服务前,我们来看下slave里面有没有数据


发现啥数据都没有

重启slave到redis服务再观察:

输入info命令

127.0.0.1:6379>  info


划线处明显标识角色是slave。

进入master服务器,

127.0.0.1:6379> info


划线处会标识角色是master

并且下面会列出所有的slave机器。

然后我们可以在slave机器上看到master数据库里面的信息,说明主从复制成功了





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

御前两把刀刀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值