Redis主从复制实验文档

一、Redis主从复制

        主从复制,是指将一台Redis服务器的数据复制到其他的Redis服务器,前者称为主节点(master/leader),后者称为从节点(slave/follower)。一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点,同时每个从节点也可以是别的从节点的父节点,即主从节点连接形成树结构。

        主从结构中数据的复制是单向的,只能由主节点到从节点,所有的内存变更,即数据的增删改都只能在主节点上进行,从节点通过同步的方式完成修改。默认情况下,从节点对非Master节点客户端是只读的。Redis使用主从复制的作用有:

        数据冗余:实现数据冗余备份,这样一台节点挂了之后,其上的数据不至于丢失。

        故障恢复:当主节点出现问题时,其从节点可以被提升为主节点继续提供服务,实现快速的故障恢复;

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

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

二、如何开启Redis数据库主从复制

1.实验环境

虚拟机版本 VMware® Workstation 16 Pro 16.2.4 build-20089737
镜像版本 CentOS-7-x86_64-DVD-1708.iso
Redis版本 Redis-5.0.7
主服务器地址 192.168.254.106/24:6379
从服务器1地址 192.168.254.107/24:6379
从服务器2地址 192.168.254.108/24:6379

2.实验要求

        通过安装并配置Redis配置文件实现Redis主从复制。

3.实验具体配置

三台服务器通用配置

yum install -y gcc gcc-c++ make                                  //安装依赖包

tar zxvf redis-5.0.7.tar.gz -C /opt/                        //将redis的软件包解压到opt下

cd /opt/redis-5.0.7/                               //进入到redis文件夹内

make                                           //编译

make PREFIX=/usr/local/redis install                 //指定安装目录

Redis主从复制实验文档_第1张图片

#由于Redis源码包中直接提供了 Makefile 文件,所以在解压完软件包后,不用先执行 ./configure 进行配置,可直接执行 make 与 make install 命令进行安装。

cd /opt/redis-5.0.7/utils

./install_server.sh

#执行软件包提供的 install_server.sh 脚本文件设置 Redis 服务所需要的相关配置文件

Redis主从复制实验文档_第2张图片

回车4次,选择默认设置。

Please select the redis executable path [] /usr/local/redis/bin/redis-server     

#在选择可执行文件路径这一栏需要手动修改为 /usr/local/redis/bin/redis-server ,注意要一次性正确输入。

结束后确认信息如下:

Selected config:

Port           : 6379                                #默认侦听端口为6379

Config file    : /etc/redis/6379.conf                #配置文件路径

Log file       : /var/log/redis_6379.log            #日志文件路径

Data dir       : /var/lib/redis/6379                #数据文件路径

Executable     : /usr/local/redis/bin/redis-server    #可执行文件路径

Cli Executable : /usr/local/bin/redis-cli            #客户端命令工具

#把redis的可执行程序文件放入路径环境变量的目录中便于系统识别

ln -s /usr/local/redis/bin/* /usr/local/bin/

-----修改 Redis 配置文件(Master节点操作)-----

vim /etc/redis/6379.conf

bind 0.0.0.0                                       #70行,修改监听地址为0.0.0.0

daemonize yes                                        #137行,开启守护进程

logfile /var/log/redis_6379.log           #172行,指定日志文件目录

dir /var/lib/redis/6379                       #264行,指定工作目录

appendonly yes                                       #700行,开启AOF持久化功能

/etc/init.d/redis_6379 restart                    //重启redis服务

-----修改 Redis 配置文件(Slave节点操作)-----

vim /etc/redis/6379.conf

bind 0.0.0.0                                       #70行,修改监听地址为0.0.0.0

daemonize yes                                        #137行,开启守护进程

logfile /var/log/redis_6379.log           #172行,指定日志文件目录

dir /var/lib/redis/6379                       #264行,指定工作目录            

replicaof 192.168.10.22 6379                           #288行,指定要同步的Master节点IP和端口

appendonly yes                                       #700行,开启AOF持久化功能

/etc/init.d/redis_6379 restart                    //重启redis服务

-----验证主从效果-----

在Master节点上看日志:

tail -f /var/log/redis_6379.log

Replica 192.168.10.18:6379 asks for synchronization

Replica 192.168.10.19:6379 asks for synchronization

在Master节点上验证从节点:

redis-cli info replication

# Replication

role:master

connected_slaves:2

slave0:ip=192.168.10.18,port=6379,state=online,offset=1246,lag=0

slave1:ip=192.168.10.19,port=6379,state=online,offset=1246,lag=1

Redis主从复制实验文档_第3张图片

Redis主从复制实验文档_第4张图片

Redis主从复制实验文档_第5张图片

Redis主从复制实验文档_第6张图片

       Redis主从复制已成功配置。

你可能感兴趣的:(redis,数据库,缓存)