redis主从复制

主从复制

redis 主从复制配置和使用都非常简单。通过主从复制可以允许多个 slave server 拥有和
master server 相同的数据库副本

1. redis 主从复制特点
  1. master 可以拥有多个 slave
  2. 多个 slave 可以连接同一个 master 外,还可以连接到其他 slave
  3. 主从复制不会阻塞 master,在同步数据时,master 可以继续处理 client 请求
  4. 提高系统的伸缩性
2. redis主从复制

当配置好 slave 后,slave 与 master 建立连接,然后发送 sync 命令。无论是第一次连接还是
重新连接,master 都会启动一个后台进程,将数据库快照保存到文件中,同时 master 主进
程会开始收集新的写命令并缓存。后台进程完成写文件后,master 就发送文件给 slave,slave
将文件保存到硬盘上,再加载到内存中,接着 master 就会把缓存的命令转发给 slave,后续
master 将收到的写命令发送给 slave。如果 master 同时收到多个 slave 发来的同步连接命令,
master 只会启动一个进程来写数据库镜像,然后发送给所有的 slave。

3. redis主从配置
环境

master IP:10.236.62.17 端口6379

slave IP: 10.236.62.109 端口6379

操作
修改slave(IP: 10.236.62.109)的redis配置文件:

slaveof 192.168.0.100 6379  (映射到主服务器上)

如果master设置了验证密码,还需配置masterauth。

如果master设置了验证密码为admin,所以配置masterauth admin。

配置完之后启动slave的Redis服务,OK,主从配置完成。
遇到的问题

当完成上述操作以后本以为可以了但是too young to native

MASTER <-> SLAVE sync started
[3286] 21 Apr 16:47:17.630 # Error condition on socket for SYNC: Connection refused
[3286] 21 Apr 16:47:18.640 * Connecting to MASTER 10.236.62.17:6379

master拒绝了slave的请求 ,查手册发现了redis.conf中的bind选项

bind:指定 Redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求,在
生产环境中最好设置该项

配置文件中默认绑定的是本机的IP默认只接受本机的请求。所以把主从配置文件(redis.conf)bind注释掉或者配置为(测试环境中。线上环境配置为真实IP):

bind 0.0.0.0

重启 ok !

TIP

当发现redis出问题的时候可以查看相关的日志。日志的位置在配置文件(redis.conf)中:

logfile /var/log/redis/redis-server.log

4. 如何判断哪个是主,哪个是从?

判断哪个是主哪个是从呢?我们只需调用 info 这个命令就可以得到主从的信息了,我们在从库上执行
info 命令里面有一个角色标识(role),来判断是主库还是从库,对于本例是一个从库,同时还有一个
master_link_status 用于标明主从是否异步,如果此值=up,说明同步正常;如果此值=down,
说明同步异步。

db0:keys=1,expires=0, 用于说明数据库有几个 key,以及过期 key 的数量

主redis的info 关键信息
# Replication
role:master
connected_slaves:1
slave0:ip=10.236.62.109,port=6379,state=online,offset=15,lag=0
master_repl_offset:15
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:14

# Keyspace
db0:keys=2,expires=0,avg_ttl=0
从redis的关键info信息
# Replication
role:slave
master_host:10.236.62.17
master_port:6379
master_link_status:up

# Keyspace
db0:keys=2,expires=0,avg_ttl=0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值