zoukankan      html  css  js  c++  java
  • Redis主从复制及原理

    一、什么是主从复制

    主从复制就是一个主库,一个从库或多个从库,一主多从。

    主库就负责写数据,从库跟主库数据同步起来,这样就可以从库读数据,主库写数据,实现读写分离。

    而且数据流向是单向的,从 master ——> slave,主库挂掉了,从库的数据还在。

    原理:

    1. 从库通过 slaveof 127.0.0.1 6379 命令,连接主库,并发送SYNC给主库 
    2. 主库收到SYNC,会立即触发 BGSAVE,后台保存 RDB,发送给从库
    3. 从库接收后会应用 RDB 快照
    4. 主库会陆续将中间产生的新的操作,保存并发送给副本库
    5. 到此,主复制就正常工作了
    

    注意:如果主库不开启持久化,有可能主库重启操作,会造成所有主从数据丢失!

    辅助配置

    min-slaves-to-write 1
    min-slaves-max-lag 3
    # 在服务器数量少于1个,或者三个服务器的延迟值(lag)都大于3秒时主服务器将拒绝执行写命令
    

    二、复制的配置

    配置命令

    端口:6380是从,6379是主

    1、在6380上执行(去从库配置)

    2、命令如下:

    127.0.0.1:6380> 127.0.0.1 6379  # 异步,这样从库就可以同步主库的数据
    # 从库不可以写数据
    

    3、取消从库命令:不会把之前的数据清除

    127.0.0.1:6380> slaveof no one
    

    配置文件

    slaveof ip port 		# 配置需要同步的主库 ip 和端口
    slave-read-only yes		# 设置从库只读,不然数据会乱
    
    学习之旅
  • 相关阅读:
    一个靠谱的技术方案文档是怎样的
    代码可复用性问题兼谈团队协作
    碎碎念五四
    碎碎念五五
    cmd命令查看本机的端口占用情况
    JS字符串里字符串嵌套和转义字符
    cef内嵌浏览器提示clodop未安装或未启动
    ADD_PRINT_IMAGE直接输出图片URL方式
    lodop缩放图片到完全适合纸张
    部署Kubernetes Cluster
  • 原文地址:https://www.cnblogs.com/XiaoYang-sir/p/15068239.html
Copyright © 2011-2022 走看看