redis 主从复制配置和使用都非常简单。通过主从复制可以允许多个 slave server 拥有和 master server 相同的数据库副本。
特点:
(1)、master 可以拥有多个 slave ;
(2)、多个 slave 可以连接同一个 master 外,还可以连接到其他 slave ;
(3)、主从复制不会阻塞 master,在同步数据时,master 可以继续处理 client 请求;
(4)、提高系统的伸缩性
复制过程:
当配置好slave后,slave与master建立连接,然后发送sync命令。无论是 第一次连接还是重新连接,master都会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存。后台进程完成写文件后,master就发送文件给slave,slave将文件保存在硬盘上,再加载到内存中,接着 master 就会把缓存的命令转发给 slave,后续 master 将收到的写命令发送给 slave。如果 master 同时收到多个 slave 发来的同步连接命令, master 只会启动一个进程来写数据库镜像,然后发送给所有的 slave。
配置一个简单主从集群:
先备份一个redis安装目录的副本。
开启四个终端,两个服务端A\B,两个客户端P\Q,其中A为master,B为slave;P为master client,Q为slave client。
A以配置文件正常启动;
B先设置副本中redis.conf文件,将# slaveof <masterip> <masterport> -->slaveof localhost 6379,并将port设置为6378,然后再以配置文件方式启动
P正常启动客户端
Q启动客户端并带端口号参数 -p 6378
这样就搭建起来了。我们可以测试一下,在master上set key,可以slave get key得到值。
我们也可以在客户端调用 info 这个命令得到主从的信息。