Redis读书笔记_redis主从复制

一、Redis主从复制

 1.1 Redis主从复制replication


对于有扩展平台以适应更高负载经验的工程师和管理员来说,复制replication是不可或缺的。复制可以让其他服务器拥有一个不断更新的数据副本,从而使得拥有数据副本的服务器可以用于处理客户端发送的读请求。关系型数据库通常会使用一个主服务器master向多个从服务器slave发送更新,并使用从服务器来处理所有读请求。Redis也采用了同样的方法来实现自己的复制特性,并将其用作扩展性能的一种手段。

    尽管Redis的性能非常优秀,但它也会遇上没办法快速处理请求的情况,特别是在对集合和有序集合进行操作的时候,涉及的元素可能会有上万个甚至上百万个, 在这种情况下,执行操作所花费的时间可能需要以秒来进行计算,而不是毫秒或者微妙。但即使一个命令只需要花费10毫秒就能完成,单个Redis实例(instance) 1秒也只能处理100个命令。

    在需要扩展读请求的时候,或者在需要写入临时数据的时候,用户可以通过设置额外的Redis从服务器来保存数据集的副本。 在接收到主服务器发送的数据初始副本initial copy of the data 之后,客户端每次向主服务器进行写入时,从服务器都会实时地 得到更新。在部署好主从服务器之后,客户端就可以向任意一个从服务器发送读请求了,而不必再像之前一样,总是把每个读请求都发送给 主服务器(客户端通常会随机地选择使用哪个从服务器,从而将负载平均分配到各个服务器上)。




1.2 Redis主从复制相关选项配置


注意:

 1.从服务器在进行同步时,会清空自己的所有数据: 从服务器在与主服务器进行初始连接时,数据库中原有的所有数据都将丢失,并被替换成主 服务器发来的数据。

   2.Redis 不支持主主复制 


开启Redis的主从复制特性:

尽管有多个不同的选项可以控制从服务器自身的行为,但开启从服务器所必须的选项只有slaveof一个。如果用户在启动Redis服务器的时候,指定了一个包含slaveof host port 选项的配置文件,那么Redis服务器将根据该选项给定的IP地址和端口号来连接主服务器。对于一个正在运行的Redis服务器,用户可以通过发送 slave  no  one  命令来让服务器终止复制操作,不再接受主服务器的数据更新;也可以通过发送slave  host  port 命令来让服务器开始复制一个新的主服务器。

配置项:

slaveof #将一个Redis服务器设置为从服务器

masterauth     #连接Redis主服务器需要的密码

slave-serve-stale-data yes      #当从服务器丢失到主服务的连接或正在进行复制操作时,是否还响应客户端的请求






slaveof host port #将一个Redis服务器设置为从服务器

打开redis的配置文件:


Redis读书笔记_redis主从复制_第1张图片
主从复制配置项




2.Redis复制的启动过程


当一个Redis服务器连接另一个redis服务器,并向对方发送sync命令来开始一次复制操作的时候,如果主服务器目前没有在执行bgsave操作,或者主服务器并非刚刚执行完bgsave操作,那么主服务器就会执行bgsave命令。


" 开启Redis的主从复制特性并不需要进行太多的配置,但了解Redis服务器是如何变成主服务器或者从服务器的,对于我们来说将是非常有用的。"


Redis读书笔记_redis主从复制_第2张图片
redis主从复制的工作原理

你可能感兴趣的:(Redis读书笔记_redis主从复制)