修改redis.conf配置文件

vi redis.conf

在编辑模式下 输入  /slaveof 来搜索

将slaveof启用 即 将#删除

依次配置所有 slave 并将进程 kill 掉 重启

查看主从信息

 

 

redis 集群主从同步的简单原理

  Redis的复制功能是基于内存快照的持久化策略基础上的,也就是说无论你的持久化策略选择的是什么,只要用到了Redis的复制功能,就一定会有内存快照发生。

  当Slave启动并连接到Master之后,它将主动发送一个SYNC命令( 首先Master会启动一个后台进程,将数据快照保存到文件中[rdb文件] Master 会给Slave 发送一个

Ping命令来判断Slave的存活状态 当存活时 Master会将数据文件发送给Slave 并将所有写命令发送到Slave )。

  Slave首先会将数据文件保存到本地 之后再将 数据 加载到内存中。

  当第一次链接 或者是 故障后 重新连接 都会先判断Slave的存活状态 在做全部数据的同步  , 之后只会同步Master的写操作(将命令发送给Slave)

问题:

  当  Master 同步数据时 若数据量较大 而Master本身只会启用一个后台进程 来对多个Slave进行同步 , 这样Master就会压力过大 , 而且Slave 恢复的时间也会很慢!

redis 主从复制的优点:

      (1)在一个Redis集群中,master负责写请求,slave负责读请求,这么做一方面通过将读请求分散到其他机器从而大大减少了master服务器的压力,另一方面slave专注于提供

读服务从而提高了响应和读取速度。

  (2)在一个Redis集群中,如果master宕机,slave可以介入并取代master的位置,因此对于整个Redis服务来说不至于提供不了服务,这样使得整个Redis服务足够安全。

  (3)水平增加Slave机器可以提高性能

 

Slave 默认是只读的更改:

  Master 可以 读写(Write and Read)  而 Slave只可以读(read only默认情况)也可以更改  {但是开启后Slave数据不会向上同步}

 

 

redis 主从同步两种架构方式:

 

  1》:主从架构

    

 

  2》:主从从架构

 

  

 

  备注:

    因为Slave断连,重连后仍然会全部同步数据,所以redis2.8版本后,增加了增量复制来解决宕机后重新链接仍然会全部同步!

 

    Master会维护一个环形队列:

    队列内存储:1》:slave连接master的id值  2》:slave上一次同步的最后一个命令

    这样当断开重连后就不会全部同步,而只会在最后一个命令同步数据!

 

   写这篇博客是为了加深理解并将自己了解到的知识记录下来 , 同时在写本博客的过程中,借鉴了许多优秀的博客,来完善 , 希望广大博友批评指正。共同进步!

                                                                                                       2016/12/4

 

  

posted on 2016-12-04 19:22  小赵的博客  阅读(3068)  评论(0编辑  收藏  举报