redis主从复制原理

举报
小小张自由--张有博 发表于 2022/03/24 15:42:11 2022/03/24
【摘要】 redis主从复制原理


基本概念

    持久化保证了即使 redis 服务重启也不会丢失数据,因为 redis 服务重启后会将硬盘上持久化的数据恢复到内存中,但是当 redis 服务器的硬盘损坏了可能会导致数据丢失,如果通过 redis 的主从复制机制就可以避免这种单点故障.
    主节点负责写数据,从节点负责读数据,主节点定期把数据同步到从节点保证数据的一致性

解释说明


20190427114346775.png

主 redis 中的数据有两个副本(replication)即从 redis1 和从 redis2,即使一台 redis 服务器宕机其它两台 redis 服务也可以继续提供服务
主 redis 中的数据和从 redis 上的数据保持实时同步,当主 redis 写入数据时通过主从复制机制会复制到两个从 redis 服务上。
只有一个主 redis,可以有多个从 redis。
主从复制不会阻塞 master,在同步数据时,master 可以继续处理 client 请求。

主从作用

     数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
     故障恢复:当主机宕掉了之后,就没有办法向数据库中写数据了,怎么办?其余的 Salve 根据配置的策略,选出一台晋升为 Master,其余的 Slave 成为新 Master 的从机,当原来宕掉的 Master 恢复后,自动成为 Slave,实现了容灾恢复。
     负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写 Redis 数据时应用连接主节点,读 Redis 数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高 Redis 服务器的并发量。
     高可用:保证了数据的高可用。因为数据在多台服务器上存储了多份,即使一台机器宕掉了,其余的机器还可以顶上。
     读写分离: 什么叫读写分离?写数据在 Master 上,读数据是在 Slave 上,这就叫读写分离。它缓解了以往 Master 既要处理读数据又要处理写数据的压力,Master 上负责写,Slave 上负责读,大大提升了数据库服务器的性能。

数据同步


redis 2.8版本以上使用psync命令完成同步,过程分“全量”与“部分”复制


   全量复制:一般用于初次复制场景(第一次建立SLAVE后全量)
   部分复制:网络出现问题,从节点再次连接主节点时,主节点补发缺少的数据,每次数据增量同步
   心跳:主从有长连接心跳,主节点默认每10S向从节点发ping命令,repl-ping-slave-period控制发送频率


主从故障如何故障转移?


   主节点(master)故障,从节点slave-1端执行 slaveof no one后变成新主节点;
   其它的节点成为新主节点的从节点,并从新节点复制数据;
   需要人工干预,无法实现高可用。

  主从的缺点


主从复制,若主节点出现问题,则不能提供服务,需要人工修改配置将从变主
主从复制主节点的写能力单机,能力有限
单机节点的存储能力也有限

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。