zoukankan      html  css  js  c++  java
  • redis主从同步

      redis支持主从复制,而且配置比较简单。主从复制实现了数据的备份,冗余,以构建高可用的系统。当master不能正常工作时,可以把slave切换成master。

      redis主从复制配置和使用都非常简单。通过主从复制可以允许多个slave server拥有和master server相同的数据库副本。下面是关于redis主从复制的一些特点
        1.master可以有多个slave,只允许有一个master


        2.除了多个slave连到相同的master外,slave也可以连接其他slave形成图状结构


        3.主从复制不会阻塞master。也就是说当一个或多个slave与master进行初次同步数据时,master可以继续处理client发来的请求。相反slave在初次同步数据时则会阻塞不能处理client的请求。


        4.主从复制可以用来提高系统的可伸缩性,我们可以用多个slave 专门用于client的读请求,比如sort操作可以使用slave来处理。也可以用来做简单的数据冗余(不同的处理分离,类似mysql读写分离应用)
        

        5.可以在master禁用数据持久化,只需要注释掉master 配置文件中的所有save配置,然后只在slave上配置数据持久化。


        redis主从同步的原理
             当设置好slave服务器后,slave会自动建立和master的连接,然后发送sync命令。无论是第一次同步建立的连接还是连接断开后的重新连 接,master都会启动一个后台进程,将内存数据以快照方式保存到

    文件中,同时master主进程会开始收集新的写命令并缓存起来(master上这些命令会被执行的,同时缓存)。后台进程完成写文件 后,master就发送文件给slave,slave将文件保存到磁盘上,然后加载到内存恢复数

    据库快照到slave上。接着master就会把缓存的命 令转发给slave。而且后续master收到的写命令都会通过开始建立的连接发送给slave。从master到slave的同步数据的命令和从 client发送的命令使用相同的协议格

    据。当master和slave的连接断开时slave可以自动重新建立连接。如果master同时收到多个 slave发来的同步连接命令,只会使用启动一个进程来写数据库镜像,然后发送给所有slave。


    配置slave服务器很简单,只需要在配置文件中加入如下配置

    slaveof 192.168.1.1 6379  #指定master的ip和端口

  • 相关阅读:
    前端获取后台传输过来是数据 {张三:12} 解析为[object object],获取其中内容
    Idea 配置Jrebel热部署
    软件清单
    js实现敲回车键登录
    myql忽略大小写问题解决
    磁盘分区(2):格式化与挂载文件系统
    磁盘分区(1):fdisk和parted
    初识Docker:BusyBox容器后台运行失败
    安装Docker:解决container-selinux >= 2.9问题
    重启nginx:端口被占用问题
  • 原文地址:https://www.cnblogs.com/taijun/p/3962610.html
Copyright © 2011-2022 走看看