zoukankan      html  css  js  c++  java
  • 108_redis如何实现了主从复制

    什么是redis主从复制?
      好几台服务器联合起来工作。其中一台服务器是主服务器,用来进行写操作。其他的从服务器用来做读操作。主从复制就是要保证
    这些服务器上数据库的一致性。

    1、一台redis服务模拟三台主机:
    1)、拷贝三份redis配置文件,并且修改相应配置信息:
      port 6379
      pidfile /var/run/redis_6379.pid
      logfile redis6379.log
      dbfilename dump6379.rdb
    2)、启动三台redis服务:
      redis-server redis6379.conf &
      redis-server redis6380.conf &
      redis-server redis6381.conf &
    3)、分别使用三个客户端连接三台redis服务:
      redis-cli -p 6379(6379被我们设置成了主服务器)
      redis-cli -p 6380
      redis-cli -p 6381
    4)、查看三台redis服务的主从关系:info replication
      redis刚启动,都是master,没有从库连接。
    2、在6379上写数据:
      set k1 v1
    3、建立redis服务之间的主从关系:
      在6380上执行:slaveof 127.0.0.1 6379
      在6381上执行:slaveof 127.0.0.1 6379
      从库会把主库上的所有数据都复制过来----全量复制。
    4、在6379上写数据
      set k2 v2
      从库会把主库上的所有新增数据都复制过来---增量复制。
    5、在6380和6381上写数据:
      set k3 v3----报错,因为这两个服务器是从服务器,只能读,不能写
    6、主机宕机:
      关闭6379服务(模拟宕机):redis-cli -p 6379 shutdown
      在6380和6381上执行:info replication
      从机原地待命。
    7、主机恢复:redis-server redis6379.conf &
      一切正常
    8、从机宕机:
      关闭6380服务:redis-cli -p 6380 shutdown
      主机减少一个从机,其它从机不变。
    9、从机恢复:redis-server redis6380.conf &
      自动变为主机,需要重新建立主从关系。
      slaveof 127.0.0.1 6379
    10、从机上位:
      1)、主机宕机:
        在6379上执行:redis-cli -p 6379 shutdown
        从机原地待命。
      2)、寻找上位从机:6380
        断开原来的主从关系:slaveof no one
      3)、重新设置主从关系:
        在6381上执行:slaveof 127.0.0.1 6380
      4)、原来的主机恢复:redis-server redis6379.conf &
        变成孤家寡人。
      5)、天堂变地狱:让主机成为从机的从机
        在6379上执行:slaveof 127.0.0.1 6381

    一台主机配置多台从机,一台从机又配置多态从机,从而形成一个庞大的集群架构。
    11、哨兵模式:从机上位的自动版。
      1)、搭建一主二从、主写从读、读写分离
      2)、提供哨兵监控配置文件:创建文件redis_sentinel.conf
        编辑内容:sentinel monitor dc-redis 127.0.0.1 6379 1
      3)、启动哨兵服务:
        redis-sentinel redis_sentinel.conf
      4)、主机宕机:
        在6379上执行:redis-cli -p 6379 shutdown
        自动启动哨兵投票机制,自动选择从机上位。
      5)、原来主机恢复:
        redis-server redis6379.conf &
        自动从属于新的主机。

  • 相关阅读:
    Overview | POCO C++ Libraries
    simple.c
    Classes for Writing HTTP Clients in C++ CodeProject
    APScheduler 2.0.3 : Python Package Index
    neon HTTP and WebDAV client library
    HTTP Client C API
    vi编辑器的学习使用(二十一)
    自由软件的定义
    vi编辑器的学习使用(二十三))
    vi编辑器的学习使用(二十二)
  • 原文地址:https://www.cnblogs.com/pogusanqian/p/12700148.html
Copyright © 2011-2022 走看看