zoukankan      html  css  js  c++  java
  • 11_Redis集群

    【Redis集群分类】

    1.主从复制(master/slave)

    2.高可用Sentinel哨兵

    3.高可用集群模式

    【 主从复制(master/slave)】

    [Redis一主多从架构]

    通过持久化功能,Redis保证了即使在服务器重启的情况下也不会丢失(或少量丢失)数据,但由于数据是存储在一台服务器上的,如果这台服务器出现故障,比如硬盘坏了,也会导致数据丢失。

    为了避免数据单点丢失,我们需要将数据复制多份部署在多台不同的服务器上,即使有一台服务器出现故障其他服务器依然可以继续提供服务。

    【如何实现】

    要求当主服务器上的数据更新后,自动将更新的数据同步到其他服务器上。

    Redis提供了复制(replication)功能来自动实现多台Redis服务器的数据同步。

    我们可以通过配置多台Redis,并在配置文件中指定这几台Redis之间的主从关系,主负责写入数据,同时把写入数据实时同步到从机器,这种模式叫做“主从复制”,即master/slave方式,并且Redis默认master用于写,slave用于读,向salve写数据会导致错误。

     [ 实现方式1 ]

    修改配置文件,启动时,服务器读取配置文件,并自动成为指定服务器的从服务器,从而构成主从复制关系。

    下面配置是基于单台服务器,启动多个Redis实例的配置,模拟一下多台redis服务

    #master主服务器conf文件配置 新增一个redis_6380配置文件
    include /usr/local/redis-3.2.9/redis.conf #导入Redis原始配置文件的内容
    daemomize yes port
    6380 pidfile /var/rum/redis_6380.pid logfile 6380.log dbfilename dump6380.rdb #slave从服务器conf文件配置 include /usr/local/redis-3.2.9/redis.conf #同主服务器
    daemonize yes port
    6382 pidfile /var/run/redis_6382.log dbfilename dump6382.rdb slaveof 127.0.0.1 6380 #这句是关键

     相关命令

      

    [ 实现方式2 ]

    ./redis-server --slaveof <master-ip> <master-port>,在启动redis时指定当前服务器成为某个主Redis服务的从slave。

     [容灾处理(手动处理)]

    当master服务出现故障,需手动将slave中的一个提升为master,剩下的slave挂至新的master上(冷处理),步骤如下(假如三台机器分别是:master、slave1、slave2)

    1.连接slave1,先将slave1服务器提升为master:slaveof no one

    2.连接salve2,再将slave2挂至新的master上:slaveof 127.0.0.1 6381

    [主从模式总结]

    【高可用Sentinel哨兵】

     Sentine哨兵是Redis官方提供的高可用方案,可以用它来监视多个Redis实例的运行情况。

    [监控]

    [配置(使用的是单台服务器启动三个实例的方式)]

    [启动sentinel]

    [sentinel总结]

    【高可用集群模式】 

    Redis集群是一个由多个节点群组成的分布式服务器群,它具有复制、高可用、分片的特性,Redis不需要Sentinel哨兵也能完成节点移除和故障转移的功能,需要将每个节点设置为集群模式,这种集群模式没有中心节点,可以水平扩展,官方文档称可以线性扩展到1000节点,Redis集群的性能和高可用均优于之前版本的Sentinel哨兵模式,且集群配置较为简单。

  • 相关阅读:
    GATK-BWA-MEM handle GRCh38 alternate contig mappings
    GATK使用说明-GRCh38(Genome Reference Consortium)(二)
    GATK使用说明(一)
    [python] 线程池
    [python] 线程锁
    [python] 线程简介
    [linux] 更改目录显示颜色
    限制登录次数
    项目经验总结-twice
    Java泛型底层源码解析--ConcurrentHashMap(JDK1.6/JDK1.7/JDK1.8)
  • 原文地址:https://www.cnblogs.com/HigginCui/p/9060338.html
Copyright © 2011-2022 走看看