Redis主从理论概述

一、redis主从概念及原理
1)理论
2)过程图解析

二、redis主从操作过程

###################################################################################################

一、redis主从概念及原理

1)主从复制理论
① 若启动一个Slave机器进程,则它会向Master机器发送一个sync_command命令,请求同步连接

② 无论是第一次连接还是重新连接,Master机器都会启动一个后台进程,将数据快照(RDB)保存到
数据文件中(执行rdb操作),同时Master还会记录修改数据的所有命令并缓存在数据文件中。

③ 后台进程完成缓存操作之后,Master机器就会向Slave机器发送数据文件,Slave端机器将数据
文件保存到硬盘上,然后将其加载到内存中,接着Master机器就会将修改数据的所有操作一并发送给Slave端机器。若Slave出现故障导致宕机,则恢复正常后会自动重新连接。

④ Master机器收到slave端机器的连接后,将其完整的数据文件发送给Slave端机几器,如果Mater同时收到多个slave发来的
同步请求则Master会在后台启动一个进程以保存数据文件,然后将其发送给所有的Slave端机器,确保所有的Slave端机器都正常。

在这里插入图片描述
2)大致解析

1、从-》主发送sync同步数据请求
2、主redis 会fork 一个子进程,然后产生RDB文件(完全备份)的过程
2.1客户端还在持续的写入Redis
3、RDB文件持久化完成后,主redis会将RDB文件和缓存起来的命令推送给从服务器
4、复制、推送完成后,主redis会持续的同步操作命令->利用AOF(增备的部分)持久化功能
5、在下一台从REDIS接入主从复制集群之前,会持续利用aof的方式同步数据给从redi

3搭建Redis主从复制
节点名IP地址
master 192.16810.20
slave1 192.168.10.21
slave2192.168.10.31
( 1)安装Redis
三台服务器都需要安装
#按需求关闭安全策略
systemctl stop firewalld
systemctl disable firewalld
setenforce o
yum -y install gcc gcc-c++ make
cd / opt
wget -p /opt http://download.redis.io/releases/redis-5.0.9.tar.gz
tar -zxvf redis-5.0 .9.tar.gz
cd redis-5.0 .9
make && make PREFIX=/usr/ local/ redis install
#Redis源码包中直接提供了makefile文件直接执行make与make install命令进行安装
cd / opt / redis-5.o.9/utils/
./install server.sh
#回车,直到出现以下选项,手动修改为"/usr/local/redis/bin/redis-server"Please select the redis executable path [/usr/local/bin/redis-serverI
/usr/ local/ redis/bin/ redis-server
ln -s /usr/ local/redis/bin/*/usr/ local/bin/
#检查服务状态
Netstat -natp l grep “redis”

(2)修改Redis配置文件
①Master节点
vim /etc/ redis/ 6379.conf
bind 127.0.0.0.1 192.168.10.20
#70行,修改监听地址为
在这里插入图片描述

daemonize yes
#137行,开启守护进程
logfile /var/ 1oglredis_6379.1og
#172行,指定日志文件目录
dir /var/ lib/ redis/ 6379
#264行,指定工作目录
appendonly yes
#700行,开启AOF持久化功能
在这里插入图片描述

/etc/ init.d/ redis_6379 restart
#重启服务使配置生效
在这里插入图片描述

(3)验证主从效果
主节点输入
tail -f /var/ log / redis_6379.log
在这里插入图片描述

redis-cli info replication
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

#Replication
role:master
connected_slaves : 2
slave0:ip=192.168.10.31,port=6379,state=online,offset=42,lag=1
slave1:ip=192.168.10.21,port=6379,state=online,offset=42,lag=1
#master启动时生成的40位16进制的随机字符串,用来标识master节点
master_replid:e920ac8821584bd21f9edbff2eeef48eabd3499c
#切换主从的时候master节点标识会有更改
master_replid2:0000000000000000000000000000000000000000
#复制流中的一个偏移量,master处理完写入命令后,会把命令的字节长度做累加记录,统计在该字段。该字段也是实现部分复制的关键字段。
master_repl_offset:42
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:42
#无论主从,都表示自己上次主实例repid1和复制偏移量;用于兄弟实例或级联复制,主库故障切换bsvlcvs

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值