zoukankan      html  css  js  c++  java
  • Redis_主从复制

    Master-slaver

    主机数据更新后根据配置和策略,自动同步到备用机的master/slaver机制

    • Master 以写为主
    • slaver  以读为主
    • Slaver  只可以读取,不能写入

    作用

    • 读写分离
    • 容灾恢复

    常用方式

    一主二仆

    一台主机,多台备机

    1. Init
    2. 1个Master 两个 Slaver
    3. Info replication:查看主从情况
    4. Master 写入数据:宕机之后,从机不会变成主机,重启之后继续使用
    5. Slaver 读取数据 ,备份数据,宕机重启之后会自动增量备份

    薪火相传

    • 去中心化
    • 减轻了主机master的负担
    • 同步的延时
    • 上一个Slaver可以是下一个slaver的Master,Slaver同样可以接受其他Slavers的连接和同步请求,那么该Slaver作为链条中下一个master,可以有效的减轻master的写压力
    • 中途变更转向:会清除之前的数据,重新建立拷贝最新的
    • Slaveof 新主机IP 新主机 端口

    反客为主

    • 从机 变  主机
    • 在主机宕机了之后,变成了主机
    • Slaveof no one  当前数据库停止与其他数据库同步,转成主数据库

    哨兵模式sentinel

    • 哨兵 -- 监控
    • 反客为主的自动版本
    • 从后台监控主机是否故障,如果故障了根据投票数自动将从库转化为i主库
    • 一组 sentinel能同时监控多个Master

    复制的原理

    1. Slaver启动成功连接到mater后会发送一个sync命令
    2. Matser接到命令之后启动后台的存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕之后,Mater将传送整个数据文件到slaver,以完成一次完全同步
    3. 全量复制: Slaver服务在接受到数据后,将其存盘并加载到内存
    4. 增量备份:Maser继续将新的所有收集到的修改命令依次传给Slaver,完成同步
    5. 但是只要是重新连接Master,一次完全同步(全量备份)将被自动执行
    6. 复制延迟

    使用

    从库配置:

    slaveof 主库 IP 主库端口   SLAVEOF 127.0.0.1 6379

    • 每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件
    • Info replication  

    修改配置文件细节操作

    • 拷贝多个redis.conf文件
    • 开启 deamonize yes
    • Pid文件名字
    • 指定端口
    • log文件名字
    • Dump.rdb名字

  • 相关阅读:
    linux 上安装sqlplus
    如何使用 SVN 找到一段时间内提交的代码文件
    nginx 快速检查配置文件的方法
    nginx 报错 [emerg] 1164#1664: bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)
    nginx 负载均衡
    C#可扩展编程之MEF学习
    5天玩转C#并行和多线程编程
    C#综合揭秘——深入分析委托与事件
    解析C#中[],List,Array,ArrayList的区别及应用
    在easyui datagrid中formatter数据后使用linkbutton
  • 原文地址:https://www.cnblogs.com/ZhaoLong-study/p/13583059.html
Copyright © 2011-2022 走看看