什么是主从复制
主从复制就是主机数据更新后根据相关配置和策略,自动同步到备用机器的master/slaver机制,Master以写为主,Slave以读为主。
作用
- 读写分离,性能扩展
- 容灾(比如天降陨石导致某台服务器挂掉了=v=)快速恢复
复制原理
- 每次联通后,从机会给主机发送
sync
指令 - 主服务器接收到命令后立即进行存盘操作(持久化),然后发送RDB文件给从服务器
- 从服务器收到RDB文件后,立刻进行全盘加载
- 之后每次主服务器的所有写操作都会立刻发送给从服务器,从服务器也立即执行相同命令
快速配置几台redis服务器
注意:主从复制是配从不配主,简单的说就是只配置从(服务器)即可
首先配置多台服务器
- 拷贝多个
redis.conf
文件,后面用在这些文件中使用include
就可以进行快速配置 - 开启
daemonize yes
(开启守护线程) - Pid文件名字
pidfile
- 指定端口号port
- Log日志文件的名字
Dump.rdb
的名字dbfilenameAppendonly.aof
关闭或者替换名字
tips:上面的5-7都是换名字,是因为如果多台服务器的名字都一样的话只会去替换掉而不会保存了
切记,到目前为止都没有确认主从关系,只是配置了几台普通的redis服务器而已
相关命令
info replication
打印主从复制的关系slaveof <ip> <port>
成为某个服务器的从服务器。
slaveof no noe
的话该服务器就是不成为任何服务器的从服务器
注意
- 这个命令如果是命令行执行的话是临时的,一旦这个服务器关闭后就不是从服务器了。
- 如果这个命令是写在配置文件中的话,那就是永久的
这个需要记住的东西
- 不管什么时候配置的从服务器,从服务器都会与主服务器保持一样的数据。
- 从服务器只可以读不可以写,主服务器即可以读又可以写
- 主服务器关闭后,从服务器待机,等主服务器开启
- 只要主从服务器开启后,无论什么情况主从服务器的数据都是一致的,无论是主服务器意外关闭还是从服务器意外关闭
- 如果从服务器中间切换主服务器,从服务器清除之前的数据,重新建立并且拷贝最新数据