redis系列三 主从架构的部署和原理

部署

  1. 准备两台集器 一主一从
    192.168.0.30 主
    192.168.0.31 从
    分别在两台机器上安装好redis 具体步骤redis单机安装及生产环境的启动方案
  2. 修改主服务器配置文件
    vim /etc/redis/6379.conf
    bind 192.168.0.30 (原来是127.0.0.1修改成本机的ip 或者 0.0.0.0 允许其他集器连接这台集器。不修改的化从服务器无法连接到主服务器)
    requirepass redis-pass (连接主服务器需要安全密码验证 ,密码是redis-pass)
    保存文件 重启redis
    l连接redis客户端的命令 redis-cli -h ip
    redis-cli -h 192.168.0.30
    auth redis-pass
    info replication


3. 修改从节点配置文件
vim /etc/redis/6379.conf
bind 192.168.0.31 (原来是127.0.0.1修改成本机的ip 或者 0.0.0.0 允许其他集器连接这台集器。不修改的化从服务器无法连接到主服务器)
添加配置
slaveof 192.168.0.30 6379 (主的ip和端口)
masterauth redis-pass
保存后重新启动
info replication 查看在这里插入图片描述
在主服务器上执行写操作 查看从服务器是否可以正常同步。

原理

数据的同步原理

当启动一个slave node的时候,他会先发送一个PING命令到master node.
如果是重新连接,之前连接过。那么master 会将slave上缺失的数据同步给slave.
如果是第一次连接的话会触发一次full resynchronization master会在后台开辟一个新的线程重新生成一个rdb快照文件,将快照文件发送给slave,slave会先将快照数据复制到本地磁盘以免丢失,然后再从磁盘加载到内存中。如果master跟slave连接断开了,会自动重连。如果有多个slave node 与master连接,master只会生成一个rbd文件,共给所有的slave节点使用。
master的数据持久化是非常重要的,如果master主节点数据丢失,内存中没有数据了,会导致其他的slave node 节点的数据也都没有了。

主从同步的断点续传

如果master 和 slave 在数据同步的过程中,连接断开了,重连之后会根据上次未复制的点继续复制。
master node会在内存中常见一个backlog,master和slave都会保存一个replica offset还有一个master id,offset就是保存在backlog中的。如果master和slave网络连接断掉了,slave会让master从上次的replica offset开始继续复制

过期key的处理

slave不会过期key,只会等待master过期key。如果master过期了一个key,或者通过LRU淘汰了一个key,那么会模拟一条del命令发送给slave。
欢迎大家关注我的微信公众号 您的关注就是我不懈的动力
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值