redis 主从复制

一、主从复制

  主机数据更 新后,根据配置和策略,自动将数据同步到从机。只有 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 机器数量的增加也会使这个问题更加严重。

 

posted @ 2018-03-20 18:11  方方方方方方  阅读(118)  评论(0编辑  收藏  举报