Redis-Copy

Redis主从复制

主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。
默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。

主从复制的作用

主从复制的作用主要包括:
1.数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
2.故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
3.负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
4.高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

从节点开启主从复制,有3种方式:

1.配置文件
在从服务器的配置文件中加入:slaveof
2.启动命令
redis-server启动命令后加入 –slaveof
3.客户端命令
Redis服务器启动后,直接通过客户端执行命令:slaveof ,则该Redis实例成为从节点。
上述3种方式是等效的,下面以客户端命令的方式为例,看一下当执行了slaveof后,Redis主节点和从节点的变化。

试验环境搭建

操作系统环境:CentOS8
Redis版本:6.0.8(Redis已经提前安装好了)
Redis安装路径:/redis
Redis配置文件名:6379.conf

IP HOST PORT ROLE
192.168.10.11 redis1 6379 Master
192.168.10.12 redis2 6379 Slave1

1.启动各个节点的redis
redis-server /redis/conf/6379.conf

2.开放redis的端口

firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload

3.修改主服务器上的redis.conf修改bind参数
bind 0.0.0.0

4.建立复制
在Slave1节点执行slaveof命令,使之变为从节点

5.在从库上查询主库的数据

6.在从库上插入数据(你会发现从库是只读的)

7.查看使用info命令 主节点和从节点偏移量 master_repl_offset (如果差的很多说明复制有问题)

8.slaveof no one 命令 取消复制

9.查看主从节点日志文件
从节点执行slaveof no one后,打印日志如下所示;可以看出断开复制后,从节点又变回为主节点。

主节点日志如下,可以发现断开复制后,主节点将丢失从节点

Contents
  1. 1. Redis主从复制
    1. 1.0.1. 主从复制的作用
    2. 1.0.2. 从节点开启主从复制,有3种方式:
    3. 1.0.3. 试验环境搭建
|