Redis复制特性

复制特性

  Redis采用了一个主服务器(master)向多个从服务器(slave)发送更新,并使用从服务器来处理所有读请求。这种复制特性也是性能扩展的一种手段。

SUNIONSTORE 命令作为对Redis性能的一个参考。其命令含义:将给定集合的并集存储在指定的集合 destination 中。如果 destination 已经存在,则将其覆盖。

详细介绍

  当从服务器连接主服务器的时候,主服务器会执行BGSAVE操作。为了保证用户正确的使用复制特性,用户需配置dir选项和dbfilename选项,并且这两个选项所指示的路径和文件对于Redis进程来讲是可写的。

  开启从服务器需设置slaveof选项。

SLAVEOF 命令用于在 Redis 运行时动态地修改复制(replication)功能的行为。
通过执行 SLAVEOF host port 命令,可以将当前服务器转变为指定服务器的从属服务器(slave server)。
如果当前服务器已经是某个主服务器(master server)的从属服务器,那么执行 SLAVEOF host port 将使当前服务器停止对旧主服务器的同步,丢弃旧数据集,转而开始对新主服务器进行同步。

Redis复制的启动过程

img

  Redis在复制进行期间也会尽可能的处理收到的命令请求,但是如果主从服务器之间带宽不够、或者主服务器没有足够的内存来创建子进程和创建记录写命令的缓冲区,那么Redis的处理请求效率就会受到影响。所以一般最好让主服务器只使用50%65%的内存,留30%45%的内存用于执行BGSVAE命令和创建记录写的命令缓冲区。

  当一个从服务器连接一个已有的主服务器时,如果主服务器未执行步骤3时,那么当前从服务器会与其他较早从服务器一样接收相同的快照文件和相同的缓冲区写命令。如果主服务器正在执行或已执行完毕3步骤,那么该从服务器会等待主服务器执行完这一批从服务器的链接后,才开始从步骤1开始至步骤5。

注意

  • 从服务器在进行同步时,会清空自己的所有数据。
  • Redis不支持主主复制,因为被相互设置为主服务器的两个Redis实例只会持续的占用大量处理器资源并且连续不断的尝试与对方通信。

主从链

  从服务器也可以拥有自己从服务器,这样就形成了主从链。从服务器对从服务器进行复制的操作和从服务器对主服务器进行复制的唯一区别在于:从服务器X 的下属从服务器Y,如果X在执行表4-2步骤4时,那么它将断开与从服务器Y的连接,导致从服务器Y需要重新连接并同步X。

  当读请求的重要性大于写请求时,并且读请求量大于一台Redis服务器可以处理的范围时,用户就需要添加新的从服务器来处理请求。随着负载不断上升,主服务器可能无法快速的更新所有从服务器、或因重新连接和重新同步从服务器导致系统超载,这时可以使用Redis主从节点组成的中间层来分担主服务器的复制工作。img

主从服务器之间不一定要像图4-1那样组成一个树状结构,但是理解这种结构对于Redis复制来说是可行的,并且合理的

检查硬盘写入

  • 验证主服务器是否将写数据同步发送到从服务器,可以在主服务器写入一个虚构值,然后在从服务器里面查找是否存在。
  • 验证是否将数据保存到硬盘,可以检查INFO命令结果中的aof_pending_bio_fysnc属性值是否为0,如果是的话,表示服务器已将所有已知的数据都保存到硬盘里面了。

INFO命令提供了大量与Redis服务器当前状态有关的信息,如内存占用、客户端链接数等

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值