一. Redis主从复制简介
Redis支持将数据同步到多台从库上,这种特性对提高读取性能非常有益。
1) master可以有多个 slave。
2) 除了多个 slave连到相同的 master外, slave 也可以连接其它 slave 形成图状结构。
3) 主从复制不会阻塞 master。 也就是说当一个或多个 slave 与 master 进行初次同步数据
时, master 可以继续处理客户端发来的请求。相反 slave 在初次同步数据时则会阻塞
不能处理客户端的请求。
4) 主从复制可以用来提高系统的可伸缩性,我们可以用多个 slave 专门用于客户端的读
请求,比如 sort操作可以使用 slave 来处理。也可以用来做简单的数据冗余。
5) 可以在 master禁用数据持久化,只需要注释掉 master 配置文件中的所有 save配置,然
后只在 slave上配置数据持久化。
二.Redis 主从复制的过程介绍
当设置好 slave服务器后, slave会建立和 master的连接,然后发送 sync命令。无论是
第一次同步建立的连接还是连接断开后的重新连接, master都会启动一个后台进程, 将数据
库快照保存到文件中,同时 master主进程会开始收集新的写命令并缓存起来。后台进程完
成写文件后, master就发送文件给 slave, slave将文件保存到磁盘上,然后加载到内存恢复
数据库快照到 slave上。接着 master就会把缓存的命令转发给 slave。而且后续 master收到
的写命令都会通过开始建立的连接发送给slave。从master到slave的同步数据的命令和从 客
户端发送的命令使用相同的协议格式。当 master和 slave的连接断开时 slave可以自动重新
建立连接。 如果 master同时收到多个 slave发来的同步连接命令, 只会启动一个进程来写数
据库镜像,然后发送给所有 slave。
配置 slave服务器很简单,只需要在配置文件中加入如下配置
slaveof 192.168.1.1 6379 #指定master的 ip和端口
备注:从服务器是没有写功能,只有读功能。主服务器拥有读写功能