redis主从复制同步实现的过程
1.从服务发送一个sync同步命令给主服务要求全量同步 (推荐学习:Redis视频教程)
2.主服务接收到从服务的sync同步命令时,会fork一个子进程后台执行bgsave命令(非阻塞)快照保存,生成RDB文件,并将
RDB文件发送给从服务
3.从服务再将接收到的RDB文件载入自己的redis内存
4.待从服务将RDB载入完成后,主服务再将缓冲区所有写命令发送给从服务
5.从服务在将主服务所有的写命令载入内存从而实现数据的完整同步
6.从服务下次在需要同步数据时只需要发送自己的offset位置(相当于mysql binlog的位置)即可,只同步新增加的数据,再不需要全量同步
通过配置文件实现主从同步
1.只需配置从服务配置文件
[root@localhost ~]# vim /app/redis/etc/redis.conf
…..
slaveof 192.168.1.9 6379 #添加属于某台主机的从 服务
…..
masterauth 123456 #从服务连接主服的密码
……
slave-read-only yes #从服务只读,不可在命令行写入数据
……
2.重新启动从服务即实现主从连接
[root@localhost ~]# redis-server /app/redis/etc/redis.conf
[root@localhost ~]# redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> info replication
#Replication
role:slave
master_host:192.168.1.9
master_port:6379
master_link_status:up
……
……
以上就是redis怎么进行主从复制的详细内容,转载自php中文网
发表评论 取消回复