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 机器数量的增加也会使这个问题更加严重。

  • 相关阅读:
    命令拷屏之网络工具
    PHP 设计模式 笔记与总结(1)命名空间 与 类的自动载入
    Java实现 计蒜客 1251 仙岛求药
    Java实现 计蒜客 1251 仙岛求药
    Java实现 计蒜客 1251 仙岛求药
    Java实现 蓝桥杯 算法训练 字符串合并
    Java实现 蓝桥杯 算法训练 字符串合并
    Java实现 蓝桥杯 算法训练 字符串合并
    Java实现 LeetCode 143 重排链表
    Java实现 LeetCode 143 重排链表
  • 原文地址:https://www.cnblogs.com/fangwu/p/8611140.html
Copyright © 2011-2022 走看看