主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。 单机存在的问题 单机如果硬件发生故障,redis发生宕机且无法重启,那么会造成巨大的问题。 总结 由于资源限制,演示使用单机多部署的方式。 使用 redis.conf中关于主从复制的部分配置: 我们可以修改redis-6380.conf文件,并重新启动redis。效果如上图不做展示。 我们可以通过 在解释复制原理之前,我们需要了解一下几个概念: 详细解析可查看博客:psync原理 Redis在2.8版本提供了PSYNC命令来带代替SYNC命令,为Redis主从复制提供了部分复制的能力。 每个Redis服务器都会有一个表明自己身份的ID。在PSYNC中发送的这个ID是指之前连接的Master的ID,如果没保存这个ID,PSYNC的命令会使用”PSYNC ? -1” 这种形式发送给Master,表示需要全量复制。 在主从复制的Master和Slave双方都会各自维持一个offset。Master成功发送N个字节的命令后会将Master的offset加上N,Slave在接收到N个字节命令后同样会将Slave的offset增加N。Master和Slave如果状态是一致的那么它的的offset也应该是一致的。 复制缓冲区,又名复制积压缓冲区,是一个先进先出(FIFO)的队列,用于存储服务器执行过的命令,每次传播命令,master都会将传播的命令记录下来,并存储在复制缓冲区 大家先看完大佬的psync的原理,再看下面的解析会更透彻一点。 全量复制是一个开销较大的操作 部分复制一般发生在: 如果runid不一致或者偏移量差距过大。
Redis主从复制
主从复制的作用
计算机的内存是有效的,不断扩大内存的方式显然是不现实的。
单机的情况下,在高读写情况下,读的性能会收到限制。为了高可用,可以做读写分离。
主从复制的配置
演示的准备工作
data
文件夹,以及config
文件夹
cp redis.conf config/redis-6379.conf
, cp redis.conf config/redis-6380.conf
redis-server redis-6379.conf
,redis-server redis-6380.conf
,并修改端口号保存redis-cli -p 6379
,redis-cli -p 6380
slaveof命令
# 在6380的客户端 slaveof 127.0.0.1 6379
info replication
命令查看主从关系
配置conf文件
# replicaof <masterip> <masterport> 配置主节点的ip以及端口号 # masterauth <master-password> 填写主节点的密码 replica-read-only yes 默认从节点为只读
当对从节点进行写操作时:
如何结束主从关系
slaveof no one
来解除主从关系,此时从机将变为默认(master)。
复制内部做了什么事
psync
PSYNC <runid> <offset> runid:主服务器ID offset:从服务器最后接收命令的偏移量
runid
offset复制偏移量
复制积压缓冲区(repl_back_buffer)
全量复制以及部分复制
全量复制
psync?-1
。bgsave
生成RDB文件,并把届时收到的写请求写入到复制积压缓冲区
。flush all
,加载RDB文件以及buffer。
部分复制
复制积压缓冲区
。psync offset runid
,带上偏移量以及runid。
master会返回FULLRESYNC runid offset
,进行一个全量复制。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算