码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Redis 切片集群


    文章目录

          • 什么是横向扩展,纵向扩展
          • 横向还是纵向
          • redis Cluster
          • reids hash slot 如何分配
          • 数据如何查找

    什么是横向扩展,纵向扩展

    横向扩展:以多机组成一个集群,依靠集群的整体力量

    纵向扩展:增加单机的资源配置(cpu,内存,磁盘等)

    横向还是纵向

    纵向优点:

    1. 简单

    纵向缺点:

    1. 硬件天花板,当前最大的单条内存应该是64GB
    2. 需要停机更新配置

    横向优点:

    1. 不需要停机
    2. 总体的配置没有上限(640GB = 32GB * 20)

    横向缺点,在于要解决如下几个问题点:

    1. 数据如何分布到不同的实例上
    2. 客户端如何找到对应的实例获取数据
    redis Cluster

    又称为切片集群,将总体数据分散到不同的实例上去存储。
    一个集群分为16384个槽(hash slot),这些槽分布到不同的实例中去,槽中存具体数据。

    reids hash slot 如何分配
    1. 通过 cluster create 创建集群的话,假设有N台实例,则按 16384/N 分配

    2. 如果通过cluster meet 手动建立实例之间的连接形成集群的话,需要通过 cluster addslots 指定具体的hash slot。手动的情况下要分完16384个槽(redis 集群才能正常工作)

    数据如何查找
    1. 集群和客户端建立连接后,会把槽的相关信息存在客户端
    2. 客户端对key进行CRC16运算后得到CV
    3. 进行取模得到槽值CZ(CV%16384)
    4. 根据1中的相关信息去对应的实例的槽上获取数据

    上面是不是看着挺完美,其实还有一些细节:

    1. 由于实例的增加或者删除,槽可能会改变位置。
      由于负载均衡(让数据分配的更均匀),槽可能会改变位置。

    2. 4去实例上获取数据时,假设这个实例叫做A,A有可能存在如下情况。

    第一种情况:A已经完成往B的迁移,这时A上找不到数据,返回B的信息(客户端更新槽的相关信息,让其下次知道去B),让其重新去B查找。

    第二种情况:A迁移部分,A上找不到,返回客户端ASK命令(包含B的信息),客户端向B发送ASKING命令,让B暴露未完全迁移的部分,供客户端查找。此情况下客户端不更新槽的相关信息。

    第三种情况: 未迁移或迁移部分能找到数据,按正常逻辑走。

  • 相关阅读:
    HDF格式遥感影像批量转为TIFF格式:ArcPy实现
    如何使用docker pull命令从腾讯云镜像加速源拉取镜像,以提高下载速度?
    nuxt vue 按住鼠标左右滑动方案收集
    Java类和对象(二)
    皮皮仔!在 vscode 里操作数据库~
    新手如何使用Cheat Engine (CE) 来修改“我的世界“?
    mysql的分组group by
    Java并发编程学习笔记6——共享模型之不可变
    MySQL数据库20G数据迁移至其他服务器的MySQL库或者云MySQL库
    Webpack
  • 原文地址:https://blog.csdn.net/qq_29744347/article/details/127789770
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号