• redis-cluster集群


    1.redis集群必不可少的工具

    1.1 redis

    1.2 redis集群搭建工具:redis-trib.rb(类似于IIS协调调度)

         将redis分为主从节点

    1.3 Ruby 安装Ruby的运行环境

    1.4 Ruby环境下的redis驱动:redis-3.2.2.gem

    2. 什么是高性能高并发集群

    2.1 集群特点:

    分担客户端压力,提高服务器效率(高并发)

    解决单点故障问题(高可用,删除服务节点,增加服务节点)

    2.2 集群类型

    对称集群:集群实例角色地位相同(特点:数据计算)

    非对称集群:集群实例校色地位不相同(特点:数据存储-读写分离, Master , Slave)

    redis是非对称集群(redis是作为数据存储)

    3.redis集群演化redis-cluser

    redis哨兵模式(Sentinel):redis集群会有一个Master节点和多个Slave节点,通过Master节点写入数据到redis,然后Copy Master中的数据到Slaver节点的redis中,slave有多个,一个Master和多个Slave组成集群,从集群中读数据,即从Master和多个Slave中读数据。当哨兵就是监控Master和Slave的,当哨兵发现Master宕机之后,会从Slave中选择一个作为Master。

    问题:

    单点写入压力大

    当Master宕机之后,重新选择Master的过程中,系统不会响应

    解决哨兵模式的缺点

    使用Ruby redis-trib.rb集群搭建工具将数据分散写入多个Master节点,然后通过Master copy到不同的从节点,当其中的某个Master宕机之后,其他的Master还是可以继续写入数据,并且Rube工具会选择新的Slave作为Master。(必须要有3个Master节点)

    主从节点同步数据方式:

    全量

    增量

    数据同步会出现的问题

    延时

    数据一致性

    Master是怎么分片:通过hash一致性算法

    4.redis-cluster如何搭建

    集群配置文件需要配置:

    port  6380 #端口

    appendonly yes #数据的保存为aof格式

    cluster-enables yes  #是否开启集群

    appendfilename "appendonly.6380.aof"  #数据保存文件

    cluster-config-file nodes.6380.config   #是否开启集群节点的配置文件(要读取的配置文件)

    cluster-node-timeout 15000    #集群节点连接的超时时间

    cluster-slave-validity-factor 10   #校验从节点是否能够进行数据复制,校验10次

    cluster-migration-barrier  1  #是否配置数据转移

    cluster-require-full-coverage yes    #是否在主从节点之间开启全量复制

    5.redis-cluster内部核心原理

  • 相关阅读:
    CMS前世今生
    叫练手把手教你读JVM之GC信息
    原来我还有网络天赋
    最简单的JVM内存结构图
    图解CyclicBarrier运动员接力赛
    图解定时任务线程池
    并发队列:ArrayBlockingQueue实际运用场景和原理
    ReentrantReadWriteLock读写锁简单原理案例证明
    JavaScript中的Function类型浅析
    JS数组整理
  • 原文地址:https://www.cnblogs.com/fblogs/p/13069321.html
Copyright © 2020-2023  润新知