最近学习redis,重新熟悉了一下redis的主从复制,下面总结一下:
一、主从复制的特点
redis的主从复制是为了降低每个redis服务器的负载,可以多设置几个,一个服务器负责“写”(添加、修改、删除)数据,其从节点服务“读”数据,主服务器会自动同步数据到从服务器。
1、master可以拥有多个slave
2、多个slave可以连接同一个master外,还可以连接到其他salva
3、主从复制不会阻塞master,在同步数据时,master可以继续处理client请求
4、提高系统的伸缩性
二、主从复制的过程
当配置好slave后,salve与master建立连接,然后发送sync命令,无论是第一次连接还是重新连接,master都会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存。后台进程完成写文件后,master就发送文件给slave,slave将文件保存到硬盘上,再加载到内存中,接着master就会把缓存的命令转发给slave,后续master将收到的写命令发送给slave,如果master同时收到多个slave发来的同步连接命令,master只会启动一个进程来写数据库镜像,然后发送给所有的salve。
三、如何实现
为了降低每个redis服务器的负载,我们可以多设置几个从节点,我们设置一个主节点,端口号为6385,设置6386的主节点为6385,再设置6387的主节点为6386。
1、只需要修改redis.conf配置文件,也可以通过命令完成
这样就建立起三者之间的主从关系,可以通过info查看设置信息:
在主节点set的值,同步到从节点和从从节点下:
主节点down了之后,从节点和从从节点都不能set值:
这样就实现了redis的主从复制,还有很多问题,实践之后再总结吧!