一、主从复制
主机数据更 新后,根据配置和策略,自动将数据同步到从机。只有 master 才能写,slave 以读为主。主从复制主要是为了解决 读写分离 和 容灾恢复 等问题
二、配置主从
1、配从不配主 ( 主机不要你配置,配置从机,将从机和主机关联 )
2、每次 slave 与 master 断开之后,都需要重新连接,除非你配置进 redis.conf 文件
3、从库配置( 在从机上执行下面命令 )
slaveof 主库IP 主库端口
三、修改配置文件
1、复制多个 redis.conf 文件
2、修改每个redis.conf 文件中 daemonize yes
3、修改每个redis.conf 文件中 pid 文件名字
4、修改每个redis.conf 文件中端口号
5、修改每个redis.conf 文件中 log 文件名
6、修改每个redis.conf 文件中 dump.rdb 名
三、查看当前机器的状态
使用 info replication 命令可以查看当前机器的状态
127.0.0.1:6379> info replication
四、复制原理
slave 启动成功连接到 master 后会发送一个 sync ( 同步 ) 命令,master 接受到命令后,启动后台的存盘进程,同时收集所有用于修改数据的命令,在后台进程执行完毕之后,master 将传送整个数据到 slave ,以完成一次完全同步。
全量复制:而 slave 服务在接收到数据库文件数据后,将其存盘并加载到内存中
曾量复制:master 继续将新的所有收集到的修改命令一次传给 slave ,完成同步
但是只要重新连接 master ,都会进行一次全量复制
五、哨兵模式
后台监控主机是否故障,如果故障了,根据投票数自动将从库转为主库
1、在 redis 安装目录( 随便哪个目录都可以 ) 下,新建 sentinel.conf 文件,文件内容如下。改文件可以同时监控多个 master
sentinel monitor host6379 127.0.0.1 6379 1
host6379 :被监控的数据库名( 名字随便起 )
127.0.0.1:被监控数据库 ip
6379:端口号
1:表示主机挂了后,slave 投票,看谁票数大于 1 ,谁就成为主机。如果多个 slave 大于 1,就再次进行投票
2、启动哨兵
[root@MyLinux bin]# redis-sentinel sentinel.conf
3、如果之前挂掉的 master 重启回来,会自动变为 slave
六、复制的缺点
由于所有的写操作都在 master 上,然后同步更新到 slave 上,所以 master 同步到 slave 上会有一定的延迟,当系统很繁忙,网络很拥堵的时候,延迟问题更加严重,slave 机器数量的增加也会使这个问题更加严重。