Redis主从复制配置实录

Redis 主从复制

1. 主从简介

配置多台Redis 服务器,以主机和备机的身份分开。主机数据更新后,根据配置和策略,自动同步到备机的 master/slaver 机制,Master以写为主,Slaver 以读为主,二者之间自动同步数据。

1.1 配置主从的目的:

读写分离时为了提高Redis性能

避免单点故障,容灾快速恢复

1.1 配置主从的原理:

每次从机联通后,都会给主机发送sync指令,主机立刻进行存盘操作,发送RDB文件,给从机

从机收到RDB文件后,进行全盘加载。之后每次主机的写操作命令,都会立刻发送给从机,从机执行相同的命令来保证主从的数据一致!

1.1 配置主从的注意事项:

主库接收到SYNC的命令时会执行RDB过程,即使在配置文件中禁用RDB持久化也会生成,但是如果主库所在的服务器磁盘IO性能较差,那么这个复制过程就会出现瓶颈,庆幸的是,Redis在2.8.18版本开始实现了无磁盘复制功能(不过该功能还是处于试验阶段),设置repl-diskless-sync yes。即Redis在与从数据库进行复制初始化时将不会将快照存储到磁盘,而是直接通过网络发送给从数据库,避免了IO性能差问题。

2. 主从配置准备

我这里是使用同台主机,多实例配置的。

2.1 准备多份配置文件

# 创建配置文件目录,然后将配置文件复制多份
mkdir -p ~/config/redis-leader-follower/

# 从redis的默认配置文件考多份配置文件出来
cd ~/config/redis-leader-follower
cp /opt/module/redis-6.0.9/redis.conf redis_6379.conf 
cp /opt/module/redis-6.0.9/redis.conf redis_6380.conf
cp /opt/module/redis-6.0.9/redis.conf redis_6381.conf

2.2 修改配置文件

# 分别修改这些配置文件
vim redis_6379.conf
vim redis_6380.conf
vim redis_6381.conf

2.3 分别启动redis-server实例

# 分别启动redis-server实例
/usr/local/bin/redis-server ~/config/redis-leader-follower/redis_6379.conf 
/usr/local/bin/redis-server ~/config/redis-leader-follower/redis_6380.conf 
/usr/local/bin/redis-server ~/config/redis-leader-follower/redis_6381.conf 

2.4 检查启动状态

# 检查启动状态
/usr/local/bin » ps -ef | grep redis                                                                                             xuxu@xuxu-PC
xuxu      65991  65872  0 10:58 pts/0    00:00:00 redis-cli
xuxu      83918      1  0 18:09 ?        00:00:00 redis-server 0.0.0.0:6379
xuxu      83934      1  0 18:09 ?        00:00:00 redis-server 0.0.0.0:6380
xuxu      84078      1  0 18:11 ?        00:00:00 redis-server 0.0.0.0:6381
xuxu      84446  37221  0 18:18 pts/3    00:00:00 redis-cli -p 6379
xuxu      84573  38148  0 18:19 pts/4    00:00:00 redis-cli -p 6380
xuxu      84645  78283  0 18:20 pts/6    00:00:00 redis-cli -p 6381
xuxu      84690  29242  0 18:20 pts/2    00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox redis

3. 建立主从关系

原则: 配从不配主

3.1 临时配置

在从服务器上执行slaveof/replicaof 命令

# 方式1:老版本使用
127.0.0.1:6380> SLAVEOF 192.168.207.130 6379
127.0.0.1:6381> SLAVEOF 192.168.207.130 6379

# 方式2: 新版本使用
127.0.0.1:6380> replicaof 192.168.207.130 6379
127.0.0.1:6381> replicaof 192.168.207.130 6379

3.2 永久配置

在从机的配置文件中,编写 slaveof 或 replicaof 属性配置

# 老版本
slaveof <masterip> <masterport>

# 新版本
replicaof <masterip> <masterport>

3.3 恢复身份

# 老版本
slaveof no one

# 新版本
replicaof no one

3.4 查看状态

info replication

在这里插入图片描述

4. 主从常见问题

4.1 从机是从头开始复制主机的信息,还是只复制切入以后的信息?

从头开始复制,即完全复制。

4.2 从机是否可写?

默认情况不能,可以通过修改配置文件,设置slave-read-only no.但是从机写入的数据是不能同步到主机,因此没有设置的必要!

4.3 主机shutdown 后,从机上位还是原地待命?

原地待命

4.4 主机又回来后,主机新增记录,从机还能否顺利复制?

可以

4.5 主从机宕机后,重启,宕机期间主机的新增记录,从机是否会顺利复制?

可以

4.6 其中一台从机down后重启,能否重认旧主?

如果配置了slaveof/replicaof 则可以,否则不行

4.7 果两台从机都从主机同步数据,此时主机的IO压力会增大,如何解决?

在从机中找一台专门用于其他的从机复制数据,即采用 主 》 从(主)=》 从的模式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值