微服务之分布式缓存Redis-第二章-搭建Redis主从架构

一、集群架构

1、集群部署图

单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。主节点负责写入,从节点只能读

在这里插入图片描述

2、节点分配

本次搭建主从同步集群使用了三台Centos系统服务器,共包含三个节点,一个主节点,两个从节点。

角色IP地址端口
master192.168.0.1016379
slave192.168.0.1026379
slave192.168.0.1036379

二、准备实例节点和配置

1、修改三台redis.conf文件,将其中的持久化模式改为默认的RDB模式,AOF保持关闭状态

# 开启RDB,注释下面语句
# save ""
# 3600秒内至少有一个改动
save 3600 1
# 300秒内至少有10个改动
save 300 100
# 秒内至少有10000个改动
save 60 10000
...
...
# 关闭AOF
appendonly no

2、修改持久化文件存储位置

如果是在单台机器安装三个redis,需要修改各自端口,各自持久化文件存储位置

# 持久化文件默认存储在redis安装目录下
dir .

3、修改每个实例的声明IP

虚拟机本身有很多个IP,为了避免将来混乱,我们需要在redis.conf文件中指定每一个实例的绑定ip信息,可以加在第一行格式如下:

replica-announce-ip 192.168.0.101

可以通过命令sed来加在第一行

sed -i '1a replica-announce-ip 192.168.0.101' redis.conf

4、启动

分别在三台机器执行如下,启动三个实例

redis-server redis.conf

三、开启主从关系

1、方法一:replicaof

我们分别进入192.168.0.102192.168.0.103两个机器

# 连接
redis-cli -p 6379
# 执行replicaof
replicaof 192.168.0.101 6379

2、方法二:slaveof

我们分别进入192.168.0.102192.168.0.103两个机器

# 连接
redis-cli -p 6379
# 执行slaveof
slaveof 192.168.0.101 6379

3、查看集群状态

进入master192.168.0.101

# 连接
redis-cli -p 6379
# 执行
INFO replication

看到类似如下信息:
在这里插入图片描述

四、主从同步原理

1、数据同步原理-全量同步

概念

主从刚刚连接的时候,进行全量同步;全同步结束后,进行增量同步。当然,如果有需要,slave 在任何时候都可以发起全量同步。redis 策略是,无论如何,首先会尝试进行增量同步,如不成功,要求从机进行全量同步。
主从同步第一次同步是全量同步
显示把快照RDB文件发送一次,因为bgsave是异步,所以过程中还会把其他的写入记录融baklog,后面同步baklog。
在这里插入图片描述

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

全量同步流程

  • slave节点连接到master节点,并发送SYNC(请求增量同步)命令
  • master节点判断replid,发现不一致,拒绝增量同步
  • master将完整内存数据生成RDB快照,发送RDB到slave从节点
  • slave清空本地数据,加载master发来的RDB
  • master将RDB期间的命令记录在repl_baklog,并持续将log中的命令发送给slave
  • slave执行接收到的命令,保持与master之间的同步

2、数据同步原理-增量同步

概念

主从第一次同步是全量同步,但如果slave重启后同步,则执行增量同步。而且repl_baklog是环形缓存,有大小上限,写满后会覆盖最早的数据。如果slave断开时间太久,导致数据被覆盖,则无法实现增量同步,只能再次全量同步。
在这里插入图片描述

五、优化Redis主从集群

  • 在master中配置repl-diskless-sync yes启用无磁盘复制,避免全量同步时的磁盘IO
  • Redis单节点上的的内存占用不要太大,减少RDB导致的过多磁盘IO
  • 适当提高repl_backlog的大小,发现slave宕机时尽快实现故障恢复,尽可能避免全量同步
  • 限制一个master节点上的slave的数量,如果实在太多slave,则采用主-从-从链式结构,减少master压力

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值