redis主从复制

来源:互联网 发布:浙江大学网络平台 编辑:程序博客网 时间:2024/06/05 21:06
#主从复制。使用slaveof做一个Redis实例的副本#另一个Redis服务器。尽快了解Redis复制的一些内容。#1)Redis复制是异步的,但您可以配置主机#停止接受写入,如果它似乎至少没有连接#给定数量的奴隶。#2)Redis的奴隶能够执行部分重新同步与#master如果复制链接丢失的数量相对较少# 时间。您可能需要配置复制积压大小(请参阅下一步#文件的部分),根据您的需要有一个合理的价值。#3)复制是自动的,不需要用户干预。之后#网络分区从站自动尝试重新连接到主站#并与它们重新同步。#slaveof <masterip> <masterport>#如果主站受密码保护(使用“requirepass”配置#指令下面)有可能告诉奴隶以前认证#启动复制同步过程,否则主机将会#拒绝奴隶请求。#masterauth <master-password>#当一个从机失去与主机的连接,或者复制时#仍然在进行,奴隶可以以两种不同的方式行事:#1)如果从属服务状态数据被设置为“是”(默认),从机将会#仍然回覆客户端请求,可能是过期的数据,或者#数据集可能只是空的,如果这是第一次同步。#2)如果从属服务状态设置为“否”,则从机将回复#所有类型的命令都出现“SYNC with master in progress”错误#但是INFO和SLAVEOF。奴隶服务陈旧数据是的#可以配置从属实例来接受写入。写反对#从属实例可能有用于存储一些临时数据(因为数据写入从机的#将与主机重新同步后容易删除)如果客户正在写信给他,也可能导致问题#配置错误。#由于Redis 2.6默认的从站是只读的。#注意:只读奴隶不是设计为暴露给不受信任的客户端# 在网上。这只是一个防止滥用实例的保护层。#仍然只读奴隶导出默认所有的管理命令#如CONFIG,DEBUG等等。在有限的程度上,你可以改善#只读奴隶的安全使用'rename-command'来影子所有#个管理/危险命令。从属只读是的#复制SYNC策略:磁盘或套接字。#------------------------------------------------- ------#警告:无重复现象是实验性的#------------------------------------------------- ------#新的从站和重新连接的从站无法继续复制#进程只是收到差异,需要做什么叫做“满”#同步“,RDB文件从主站传送到从站。#传输可能​​以两种不同的方式发生:#1)磁盘备份:Redis主设备创建一个写入RDB的新进程#文件在磁盘上。之后该文件由父母传送#逐步过程到奴隶。#2)无盘:Redis master创建一个新的进程,直接写入#RDB文件到从属套接字,根本不接触磁盘。#使用磁盘备份复制,当生成RDB文件时,会有更多的从站#可以在目前的孩子生产后立即排队等待RDB文件#RDB文件完成其工作。使用无盘复制代替一次#转移开始,新的从站到达将被排队等待并进行新的转移#将在当前结束时开始。#当使用无盘复制时,主器件等待可配置的数量#时间(以秒为单位)开始传输之前希望多个从站#将到达并且传输可以并行化。#慢速磁盘和快速(大带宽)网络,无盘复制#更好的工作。repl-diskless-sync no#启用无盘复制时,可以配置延迟#服务器等待为了产生通过套接字传输RDB的孩子#给奴隶。#这很重要,因为一旦传输开始,就不可能服务#新的从站到达,将排队等待下一次RDB传输,所以服务器等待延迟才能让更多奴隶到达。#延迟以秒为单位,默认为5秒。禁用#它完全设置为0秒,传输将尽快开始。复制无盘同步延迟5#从站以预定义的间隔将PING发送到服务器。有可能改变#这个间隔与repl_ping_slave_period选项。默认值是10#秒。#repl-ping-slave-period 10#以下选项为以下设置复制超时:#1)从从站的角度看,在SYNC期间批量传输I / O。#2)从奴隶角度来看,主人超时(数据,平局)。#3)从主机的角度来看从机超时(REPLCONF ACK ping)。#确保该值大于该值很重要#为repl-ping-slave-period指定,否则会检测到超时#每次主站和从站之间的流量都很低。#repl-timeout 60#在SYNC之后,在从站插槽上禁用TCP_NODELAY?#如果选择“是”,则Redis将使用较少数量的TCP数据包减少发送数据到从站的带宽。但这可以增加一个延迟#显示在从属端的数据,最多40毫秒#Linux内核使用默认配置。#如果选择“否”,数据出现在从属端的延迟将会#减少,但更多的带宽将用于复制。#默认情况下,我们优化低延迟,但在非常高的流量条件下#或当主人和奴隶很多跳时,将其转为“是”可能#是个好主意。repl-disable-tcp-nodelay no#设置复制积压大小。积压是积累的缓冲区从站数据当从站断开一段时间时,这样一个从站#想要再次重新连接,通常不需要完全重新同步,而是部分重新同步重新同步就足够了,只是传递从机错过的那部分数据#断开连接。#复制积压的次数越多,从站的时间就越长#断开,后来能够执行部分重新同步。#只有至少有一个从机连接,才会分配积压。#repl-backlog-size 1mb#主人不再连接奴隶一段时间后,积压#将被释放。以下选项可配置秒数#需要经过,从最后一个从机断开的时间开始#要释放的积压缓冲区。#请注意,奴隶从来没有释放积压超时,因为他们可能是#以后提升为大师,应该能够正确“部分#重新同步“与奴隶:因此,他们应该始终积累积压。#值为0意味着永远不会释放积压。#repl-backlog-ttl 3600#从属优先级是由Redis在INFO输出中发布的一个整数。#它被Redis Sentinel用来选择一个slave来升级成一个#master如果主机不再正常工作。#优先级低的奴隶被认为更适合晋升,所以#例如,如果有三个从站,优先级为10,100,25 Sentinel会#选择优先级为10的那个,即最低的。#但是,特殊的优先级为0会使从属设备无法执行#角色的master,所以优先级为0的slave不会被选中#Redis Sentinel促销。#缺省情况下,优先级为100。从优先级100#如果小于,主设备可以停止接受写入#N从机连接,滞后小于或等于M秒。#N从站需要处于“在线”状态。#以秒为单位的滞后,必须是<=指定的值,由...计算#从从机接收到的最后一次ping,通常每秒发送一次。#此选项不保证N个副本将接受该写入,但是如果没有足够的奴隶,#将限制丢失写入的暴露窗口#可用,以指定的秒数。#例如,要求至少3个滞后<= 10秒的从站使用:#min-slaves-to-write 3#min-slaves-max-lag 10#将一个或另一个设置为0将禁用此功能。#默认情况下,最小从站设置为0(禁用功能)和#min-slaves-max-lag设置为10。#Redis主站能够列出附件的地址和端口#奴隶以不同的方式。例如“INFO复制”部分#提供这个信息,在其他工具中被使用#Redis Sentinel为了发现从属实例。#这个信息可用的另一个地方是输出#“ROLE”命令的主人。#获取从站通常报告的列出的IP和地址#以下列方式:#IP:通过检查对端地址来自动检测地址从站与主站连接使用的套接字数量。#端口:端口在复制过程中由从设备通信#握手,通常是从机正在使用的端口#连接列表。#然而当端口转发或网络地址转换(NAT)是#使用,奴隶可能实际上可以通过不同的IP和端口到达#对。以下两个选项可以被奴隶使用,以便#向其主机报告一个特定的一组IP和端口,使两个INFO#和ROLE会报告这些值。#如果需要覆盖,则不需要使用这两个选项#端口或IP地址。#slave-announce-ip 5.5.5.5#slave-announce-port 1234
原创粉丝点击