Redis主从复制

2023-05-11T23:00:00

Redis主从复制

主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点。

  • 一个master可以有多个slave
  • 一个slave只能有一个master
  • 数据流向是单向的,master到slave

主从复制架构图:

redis为什么需要主从复制

(1)、Redis虽然读写的速度都很快,单节点的Redis能够支撑QPS大概在5w左右,如果上千万的用户访问,Redis就承载不了,成为了高并发的瓶颈。

(2)、单节点的Redis不能保证高可用,当Redis因为某些原因意外宕机时,会导致缓存不可用

(3)、CPU的利用率上,单台Redis实例只能利用单个核心,这单个核心在面临海量数据的存取和管理工作时压力会非常大。

工作原理

  1. 当从服务器连接主服务器时,发送SYNC命令;
  2. 主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令;
  3. 主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令;
  4. 从服务器收到快照文件后丢弃所有旧数据,载入收到的快照;
  5. 主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令;
  6. 从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令;(从服务器初始化完成)
  7. 主服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接收并执行收到的写命令 (从服务器初始化完成后的操作)

工作原理图

主从复制优缺点

优点

(1)配置简单,易于实现

(2)实现数据备份和冗余,提高数据可靠性

(3)实现读写分离,提高系统性能

缺点

(1)在主节点发生故障时,只能手动切换,故障恢复时间长,必须借助其他手段完成自动切换

(2)所有的写操作都在主节点上,主节点的压力大,会成为性能瓶颈

(3)所有节点都保持同一份数据,不能进行数据分片,单机容量即为整个集群的容量

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »