Redis 主从复制

主从复制:是指将一台Redis服务器的数据,复制到其他的Redis服务器,前者称为主节点(Master/leader),后者称为从节点(Slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave以读为主。

默认情况下,每台Redis服务器都是主节点,且一个主节点可以由多个从节点,但一个从节点只能由一个主节点。

1.主从复制的作用主要包括:

1.数据冗余:主从复制实现了数据定热备份,是持久化之外的一种数据冗余方式。

2.故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。

3.负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务,分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。

4.高可用基石:除了上述作用意外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

单台Redis最大使用内存不应该超过20g。

查看当前库的信息

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379>

2.主从配置:

一般情况下指配置从机。

127.0.0.1:6379> slaveof 127.0.0.1 6379
OK
127.0.0.1:6379> 

 

 主机可以写,从机只能读!主机中的数据都可以被从机读取。

如果是使用命令来配置的主从,这个时候如果重启了,就变回主机。只要变为从机,立马就会从主机中获取值!

3.复制原理:

Slave启动成功连接到master后会发送一个sync命令

Master接到命令,启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,并完成一次完全同步

  • 全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。
  • 增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步。

但是只要是从新连接master,一次完全同步(全量复制)将被自动执行。我们的数据一定可以在从机中看到!!

4.宕机后手动配置主机:

在哨兵模式之前,如果主机宕机,可以在其他从节点中手动配置一个主节点。可以利用 slaveof no one 让自己变成主机。其他从节点可以手动连接到最新的这个主节点。如果这个时候原来的主机恢复了,那就重新配置。

127.0.0.1:6379> slaveof no one
OK
(3.90s)

 

posted @ 2021-02-13 12:43  创客未来  阅读(57)  评论(0编辑  收藏  举报