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

    一、主从复制

      主机数据更 新后,根据配置和策略,自动将数据同步到从机。只有 master 才能写,slave 以读为主。主从复制主要是为了解决 读写分离 和 容灾恢复 等问题

    二、配置主从

    1、配从不配主 ( 主机不要你配置,配置从机,将从机和主机关联 )

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

    3、从库配置( 在从机上执行下面命令 )

    slaveof 主库IP 主库端口

    三、修改配置文件

    1、复制多个 redis.conf 文件

    2、修改每个redis.conf 文件中 daemonize yes

      

    3、修改每个redis.conf 文件中 pid 文件名字

      

    4、修改每个redis.conf 文件中端口号

      

    5、修改每个redis.conf 文件中 log 文件名

      

    6、修改每个redis.conf 文件中 dump.rdb 名

      

    三、查看当前机器的状态

      使用 info replication 命令可以查看当前机器的状态

    127.0.0.1:6379> info replication

      

    四、复制原理

      slave 启动成功连接到 master 后会发送一个 sync ( 同步 ) 命令,master 接受到命令后,启动后台的存盘进程,同时收集所有用于修改数据的命令,在后台进程执行完毕之后,master 将传送整个数据到 slave ,以完成一次完全同步。

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

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

      但是只要重新连接 master ,都会进行一次全量复制

    五、哨兵模式

      后台监控主机是否故障,如果故障了,根据投票数自动将从库转为主库

      1、在 redis 安装目录( 随便哪个目录都可以 ) 下,新建 sentinel.conf 文件,文件内容如下。改文件可以同时监控多个 master

    sentinel monitor host6379 127.0.0.1 6379 1
    host6379 :被监控的数据库名( 名字随便起 )
    127.0.0.1:被监控数据库 ip
    6379:端口号
    1:表示主机挂了后,slave 投票,看谁票数大于 1 ,谁就成为主机。如果多个 slave 大于 1,就再次进行投票

      2、启动哨兵

    [root@MyLinux bin]# redis-sentinel sentinel.conf

      3、如果之前挂掉的 master 重启回来,会自动变为 slave

     六、复制的缺点

      由于所有的写操作都在 master 上,然后同步更新到 slave 上,所以 master 同步到 slave 上会有一定的延迟,当系统很繁忙,网络很拥堵的时候,延迟问题更加严重,slave 机器数量的增加也会使这个问题更加严重。

  • 相关阅读:
    阅读随笔
    四则运算生成器基础版
    《梦断代码》阅读计划
    JavaScript值传递和引用传递
    nodejs包高效升级插件npm-check-updates
    JavaScript常用技巧之进制转换
    js 数组、字符串、Json互相转换
    利用Stream模式进行文件拷贝
    ACM-ICPC 2018 焦作赛区网络预赛 H、L
    ACM-ICPC 2018 沈阳赛区网络预赛 G 容斥原理
  • 原文地址:https://www.cnblogs.com/fangwu/p/8611140.html
Copyright © 2011-2022 走看看