首先简单介绍下Redis中的复制:
(1)同一个master可以同步多个slave。
(2)slave同样可以接受其他slaves的连接和同步请求,这样可以有效的分担master的同步压力。
(3)master server是以非阻塞的方式为slaves提供服务的,所以在master-slave同步期间,客户端仍然可以提交查询或修改请求。
(4)slave server同样是以非阻塞的方式完成数据同步。在同步期间,如果有客户端提交查询请求,Redis则返回同步之前的数据。
(5)为了分担master的读操作压力,slave服务器可以为客户端提供只读操作的服务,写服务仍然必须由master来完成。
(6)master可以将数据的保存操作交给slaves来完成,从而避免了在master中要有独立的进程来完成此操作。
复制的工作原理:
在slave启动并连接到master之后,它将主动发送一个SYNC命令。此后master将启动后台存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕后,master将传送整个数据库文件到slave,以完成一次完全同步。而slave服务器在接受到数据库文件后将其存盘并且加载到内存中。此后,master继续将所有已经收集到的修改命令和新的修改命令依次传送给slaves,而slaves将在本次执行完这些数据修改命令,从而达到最终的数据同步。如果slave和master之间的连接出现断连现象,slave可以自动重练master,但是在连接成功之后,一次完全同步将会被自动执行。
复制的配置:
直接把配置文件中的#slaveof <masterip> <masterport> 中的#去掉,并且修改为相应的信息即可。
原文地址:http://blog.csdn.net/xinguimeng/article/details/43924777