Redis的复制功能,是允许从服务器精确复制主服务器并且易于配置和使用的主从架构。下面是一些关于Redis复制非常重要的特性:

一台主服务器可以被多台从服务器连接。从服务器可以被其他从服务器连接。在图状结构中,除了一台主服务器可以被多台从服务器连接之外,从服务器也可以被其他从服务器连接。复制同时可用于提升可扩展性,这样在执行只读查询时可以使用多台从服务器。(例如,大量的 SORT操作可以分配给从服务器进行操作,或者只是用于数据冗余)。可以通过使用复制,来避免在主服务器端进行保存处理:只需修改主服务器的redis.conf配置文件避免保存(注释所有”save”指令),然后连接到一台从服务器配置为不时保存。Redis的复制如何工作

如果你配置了一台从服务器,在连接后发送一条SYNC命令。不用在意此次是首次连接还是一次重连。

然后主服务器开始后台保存,并且收集所有将对数据集进行修改的新指令。当后台保存操作完成时,主服务器会将保存在磁盘中的数据库文件同步至从服务器,并将数据加载到内存中。主服务器接着会发送给从服务器所有累计的指令,以及所有从客户端收集到的将对数据集进行修改的指令。这个过程将以一个与Redis自身协议相同格式的命令流执行。

你可以通过telnet进行尝试。在服务器执行某些工作的时候连接到Redis端口并执行SYNC命令。你将会telnet会话中看到数据的批量传输,以及从主服务器接收到的每条命令都会被重新分发。

当主-从连接因为某些原因中断时,从服务器会自动重连。如果主服务器收到多条来自从服务器的并发同步请求时,它将为每台从服务器执行一个独立的后端保存操作。

配置

配置复制其实很简单:只需在从服务器的配置文件中加入下面一行文字:

slaveof 192.168.1.1 6379

当然,你需要把192.168.1.1 6379替换为你的主服务器ip地址(或者主机域名)和对应的端口。