Redis--主从架构

1 主从架构
构建读写分离架构,满足读多写少的应用场景,数据备份,实现高可用,默认情况下redis数据库充当slave角色时是只读的不能进行写操作。
可在配置文件中更改slave-read-only字段:
这里写图片描述
这里写图片描述
1.1 创建不同的配置文件
创建三个目录,将redis.config复制三份放在三个文件夹中。分别修改配置文件,将端口分别设置为:6379(Master)、6380(Slave)、6381(Slave)。同时要设置pidfile文件为不同的路径。
1.2 配置主从节点
在两个准备设置为从节点的配置文件中,打开配置文件,搜索slaveof,会有详细的说明,配置主节点的IP和端口号,如下例:

#slaveof <masterip> <masterport>
slaveof 192.168.209.131 6379

将该从节点的主节点配置为192.168.209.131,端口为6379。
这里写图片描述
1.3 启动测试:
先启动主节点,然后启动从节点。
如果是在各个节点启动后通过命令配置主节点,主会出现如下日志
6380添加到主节点中
在这里插入图片描述
6381添加到主节点中
在这里插入图片描述
启动客户端命令如下例:

[root@SuperMachine redis-4.0.0]# /usr/local/redis-4.0.0/src/redis-server /usr/local/redis-4.0.0/6380/redis.conf 

启动客户端测试,在主节点中设置一个键值对:

[tang@SuperMachine src]$ ./redis-cli -h 192.168.209.131 -p 6379

这里写图片描述
从节点是否能获取到:
这里写图片描述
测试显示成功,在从节点中成功取到主节点的数据。
附出现的问题:
启动从节点时,从节点显示如下问题:
解决方案:在配置文件中更改一个配置,如下
这里写图片描述
参考博客:http://blog.csdn.net/song19890528/article/details/38536871

  • runid
    在这里插入图片描述
    每次重启后都会生成一个唯一的id,主节点重启了,runid不同,如果从节点发现主节点runid和之前不一样,那么会全量从主节点中拉取。

全量复制流程
在这里插入图片描述
全 量 复 制 总 结 一 下 , m a s t e r 发 送 了 三 次 数 据 , 第 一 次 是 m a s t e r 信 息 , \color{#FF0000}{全量复制总结一下,master发送了三次数据,第一次是master信息,} mastermaster
第 二 次 是 发 送 r b d 数 据 , 第 三 次 是 b u f f e r 缓 冲 区 数 据 \color{#FF0000}{第二次是发送rbd数据,第三次是buffer缓冲区数据} rbdbuffer

全量复制需要执行bgsave,耗时并且占用网络开销,所以一般有部分复制。
在这里插入图片描述
部 分 复 制 是 利 用 b u f f e r 缓 存 区 保 存 命 令 数 据 , 通 过 与 发 送 过 去 的 数 据 偏 移 量 比 较 , \color{#FF0000}{部分复制是利用buffer缓存区保存命令数据,通过与发送过去的数据偏移量比较,} buffer
然 后 发 送 给 s l a v e 节 点 那 些 不 等 于 偏 移 量 的 数 据 \color{#FF0000}{然后发送给slave节点那些不等于偏移量的数据} slave

主从架构下的问题

  • 操作需要人工介入
    如果从节点宕机,需要重启,然后加入到主从架构中,会执行增量复制。
    如果主节点宕机,从从节点中选择一个断开与主节点的联系,作为主节点,宕机的主节点重启后加入到主从架构中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值