zoukankan      html  css  js  c++  java
  • Redis高可用高并发集群配置 look

    高可用高并发集群配置

    Redis集群的搭建

    搭建链接:搭建
    文档链接: redis文档

    • 概述

    高可用 24小时对外提供服务
    高并发 同一时间段能处理的请求数

    中心化和去中心化

    • 中心化

    意思是所有的节点都要有一个主节点
    缺点:中心挂了,服务就挂了
    中心处理数据的能力有限,不能把节点性能发挥到最大
    特点:就是一个路由作用
    在这里插入图片描述

    • 去中心化

    特点:去掉路由,我自己来路由
    在这里插入图片描述

    以上通俗的就是
    中心化:几个经过认证的嘉宾在‘讲话’,所有其他人在听。
    去中心化:每个人都可以‘讲话’,每个人都可以选择听或者讲。

    Redis集群的执行流程分析

    • 哈希槽说明

    Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。
    当你往Redis Cluster中加入一个Key时,会根据crc16(key) mod 16384计算这个key应该分布到哪个hash slot中,一个hash slot中会有很多key和value。你可以理解成表的分区,使用单节点时的redis时只有一个表,所有的key都放在这个表里;改用Redis Cluster以后会自动为你生成16384个分区表,你insert数据时会根据上面的简单算法来决定你的key应该存在哪个分区,每个分区里有很多key。

    通俗来说
    Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽.集群的每个节点负责一部分hash槽,举个例子,比如当前集群有3个节点,那么:

    节点 A 包含 0 到 5500号哈希槽.
    节点 B 包含5501 到 11000 号哈希槽.
    节点 C 包含11001 到 16384号哈希槽.

    • 执行流程分析

    假如redis集群里面能存放90个key,那么redis集群把90key平分到3个主机
    redis对每个主机里面30个存储位置都编号,当应用连接到主机1上面时,应该发送一个写的命令
    主机使用crc16算出槽号
    如果槽号在1-30 可以直接操作主机1
    如果槽号在31-60那么redis会转发到主机2
    如果应该再发一个命令set age 22
    那么主机2使用crc16再算槽号再转发

  • 相关阅读:
    redis 集群
    redis--主从复制
    redis--AOF
    React——组件
    React——文件夹分析
    WEB面试
    WEB基础——接收后台文件方法
    WEB基础——AJAX
    C#进阶——IOC
    C#基础——HttpContext
  • 原文地址:https://www.cnblogs.com/look-word/p/15781216.html
Copyright © 2011-2022 走看看