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

        redis是一个开源的,内存中的数据结构存储系统.它可以用作数据库,缓存和消息中间件.

    它支持多种数据类型,如字符串(strings),散列(hash),列表(list),集合(set),有序集合(sorted sets)等

    redis内置了复制,LUA脚本,LRU驱动事件,事务和不同策略的磁盘持久化,并通过Resia哨兵(sentinel)和

    自动分区(Cluster)实现可用性.

      其它功能还包括:

      1,复制

      2,订阅/发布

      3,LUA脚本

      4,过期key自动删除

      5,内存回收

      6,自动故障移除

        redis的主从复制原理

      redis的主从复制分为全量复制和增量复制

      1,初始化

      在从服务器第一次连接上主服务器的时候会发送PSYNC命令,主服务器收到PSYNC命令后执行BGSAVE命令

    创建一条子线程进行将数据存放到RDB文件中,并把此期间接收到的写命令缓存到内存中.当RDB快照完成后,主服务

    器会把快照发送给所有从服务器.从服务器接收并保存快照数据,然后将数据载入内存中.最后主服务器把缓存的写命令

    发送给从服务器,从服务器执行这些命令更新数据

      2,断线重连

      redis在2.8之后支持增量数据同步时.redis会在内存中缓存下要发送给从服务器的内容,当从服务器断线重连后

    会向主服务器发送"希望同步的主服务器ID"和"希望同步的数据偏移位置".主服务器在接收同步请求后会验证主服务器ID

    是否与自己的ID一致,然后再验证缓存中是否存在请求的偏移位置.如果存在则同步数据.

      3,实时同步

      主服务器和从服务器在正常服务的时候,主服务器会把每条写命令通过网络发送给从服务器.

  • 相关阅读:
    Linux下校验下载文件的完整性(MD5,SHA1,PGP)
    十六进制字节 & 十六进制转二进制
    session & cookie
    php与mysql的链接到底用mysql 还是mysqli,pdo
    php连接数据库时候的字符集设置
    Prepared statements(mysqli & pdo)
    shell脚本中执行mysql命令
    centos系统字符编码问题
    实用crontab命令
    shell获取用户输入
  • 原文地址:https://www.cnblogs.com/taixuyingcai/p/6413699.html
Copyright © 2011-2022 走看看