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正则表达式详解转载
    转载Sqlserver2005 存储过程分页
    转载手把手教你用C#打包应用程序
    学习内容
    用C#实现将HTML文件转换为CHM文件(转)
    C# Windows服务添加安装程序
    sql 2008评估期已过有关如何升级,企业试用版到期,升级为企业版+sql2008破解
    iis不能启动是什么原因?错误提示:“提示服务器没有及时相应启动或控制请求”
    .NET 获取数据库中所有表名的方法
    如何获取Dynamics当前登录的用户的GUID,进而获取用户的信息
  • 原文地址:https://www.cnblogs.com/fangwu/p/8611140.html
Copyright © 2011-2022 走看看