• Redis学习04:主从复制Replication


    Redis学习04:主从复制Replication

     主从复制是什么

      1-官网描述:https://redis.io/topics/replication

       

     主从复制可以做什么

      1-读写分离

      2-容灾备份

    如何实现主从复制

      1-配置(只需设置从库,无需设置主库)(假设配置一主二从,主端口号为6379,从端口号位6380,6381)

        1-复制redis.conf为redis_slave_6380.conf,并修改redis_slave_6380.conf中的相关配置,如下;其中port和salveof必须设置

    port 6380//设置端口号,必须设置
    slaveof 127.0.0.1 6379//这是主库的IP+port
    daemonize yes//开启守护进程,允许redis可以后台进行
    logfile "log6380.log"//设置日志文件名称
    pidfile /var/run/redis_6380.pid//设置PID文件路径
    dbfilename dump_slave_6380.rdb//设置RDB文件名称

        2-从库6381设置步骤同1,将6380改成6381即可;

        3-确认是否配置成功:依次启动6379,6380,6381Redis服务器,并依次进入三个客户端,执行info replication;结果如下,表示成功;

        4-在主库写入值,从库也可以读取到值

     主从复制的几个细节问题

      1- 切入点问题?slave1、slave2是从头开始复制还是从切入点开始复制?比如从k4进来,那之前的k1、k2、k3是否也可以复制

        答:是从头开始复制全部数据  

      2- 从机是否可以写?set可否?

        答:从库禁止写入;强制写入,报"(error) READONLY You can't write against a read only slave."异常

      3- 主机shutdown后情况如何?从库是上位还是原地待命

        答:从库原地待命,不会自动升为主库

      4- 主机又回来了后,主机新增记录,从机还能否顺利复制?

        答:可以顺利复制;

      5- 其中一台从机down后情况如何?依照原有它能跟上大部队吗?

        答:从机down后,再次启动就会独立成为新的主机;但是如果从机slaveof ip port是写在配置文件的,那么从机重启后依然会是原主机的从机;

    复制原理

      Slave启动成功连接到master后会发送一个sync命令

      Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令, 在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步

      全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。

      增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步

      但是只要是重新连接master,一次完全同步(全量复制)将被自动执行

  • 相关阅读:
    jQuery 回到顶部
    c# 获取客户端ip
    JS 新浪API获取IP归属地
    c#抓取网站数据
    ECLIPSE最常用快捷键排名
    BinarySearchTree示例——C++模板实现
    SICP 找零钱问题背后的思考
    关于解引用*和箭头操作符->的重载
    traits技法小计
    最大和子序列问题
  • 原文地址:https://www.cnblogs.com/wobuchifanqie/p/11851562.html
Copyright © 2020-2023  润新知