1.主从复制概念
Redis 支持将数据同步到多台从库上,这种特性对提高读取性能非常有益。
1) master 可以有多个 slave。
2) 除了多个 slave 连到相同的 master 外,slave 也可以连接其它 slave形成树状结构。
3) 主从复制不会阻塞 master。也就是说当一个或多个slave 与 master 进行初次同步数据时,master 可以继续处理客户端发来的请求。相反 slave 在初次同步数据时则会阻塞不能处理客户端的请求。
4) 主从复制可以用来提高系统的可伸缩性,我们可以用多个 slave专门用于客户端的读请求,比如 sort 操作可以使用 slave 来处理。也可以用来做简单的数据冗余。
5) 可以在 master 禁用数据持久化,只需要注释掉 master 配置文件中的所有 ve 配置,然后只在 slave 上配置数据持久化cd 。
2.主从复制过程
当设置好 slave 服务器后,slave 会建立和 master 的连接,然后发送 sync命令。无论是第一次同步建立的连接还是连接断开后的重新连接,master 都会启动一个后台进程,将数据库快照保存到文件中,同时 master 主进程会开始收集新的写命令并缓存起来。后台进程完成写文件后,master 就发送文件给 slave,slave 将文件保存到磁盘上,然后加载到内存恢复数据库快照到 slave 上。接着 master 就会把缓存的命令转发给 slave。
主从复制配置:主服务器不用配置,从服务器需要。Redis配置文件修改。
$ vim redis.conf 查找方式命令模式下输入 /slaveof
(↓这是一个从服务器)
修改后:
slaveof 192.168.102.129 6379 #指定 master 的 ip 和端口。
(表示这个redis是192.168.102.129 6379 这个redis的从服务器)
配置完成启动主服务器和两个从服务器。
主服务器显示当前角色是master,有两个从服务器都在线。(我配置了两个从redis)
从服务器显示当前角色是slave,链接状态为up。
主服务器写入一条数据
(↓这是master服务器)
从服务器可以获取
(↓这是一个从服务器)
从服务器尝试写入数据,显示从服务器只能写。
(↓这是一个从服务器)