特点
1. Master可以拥有多个Slave
2. 多个Slave除可以连接一个Master外,还可以连接多个Salve(避免Master挂掉不能同步,当Master挂掉,其中一个Slave会立即变成Master)
3. 主从同步的时候不会阻塞Master,同步的时候Master仍然可以继续处理Client请求
4. 提高伸缩性
主从同步原理
1. Slave向Master发起建立连接,发起同步请求命令
2. Master会启动一个后台,将数据快照保存到文件中,同时Master主进程会收集新的写命令并缓存
3. 后台完成保存之后,会将此文件发给Slave
4. Slave将此文件保存到硬盘
主从复制步骤
1. 启动Master服务器
2. 使用Vi编辑器修改 Slave 的 redis.conf文件, 找到 slaveof 所在的行,设置为 slaveof 192.168.221.128 6379 (表示Master服务器的ip和端口)
3. 如果 Master 服务器设置有密码,需要 找到 masterauth 所在的行,设置为 masterauth hexu (表示Master服务器的密码)
4. 启动Slave服务器
问题:如何查看哪台是Master,哪台是Slave?
答:通过 info 命令的反馈,
# Replication
role:slave
master_link_status:up 表示正在连接Master,所以这台是 Salve
可以看到,当 db.StringSet 到 Master库的时候,Slave库也得到了数据,主从复制成功