当前位置: 首页 > news >正文

Redis 集群分片算法

引入哨兵模式后,提高了系统的可用性,但由于哨兵节点不存储数据,不能缓解主从节点存储数据的压力,随着主节点与从节点的数据越来越多,最后会超出存储限制。

这时就需要引入 Redis 集群,即在系统中使用多台主节点与从节点共同存储数据,将一个主节点与若干从节点分为一组,每一组都存储一部分数据(分片),加起来就构成了数据的全部。

在上述的情况中,就涉及到将数据分成多个分片。下面介绍三种主流的分片方式。

哈希求余

由于 Redis 中的数据都是键值对结构,就可以根据其中的 key 计算哈希值,将这个值余上分片的数量,得到的结果就是需要存储在哪个分片中。

后续需要根据这个 key 取出数据时,也是先使用同样的算法计算哈希值,将得到结果余上分片的数量,就可以得到数据存储在哪个分片中。

比如,某个 key 计算出的哈希值是5,一共有3个分片,5 % 3 => 2,就是将数据存储在2号分片中。

但是上面的方式存在一定的问题,当该集群需要扩容时,就会有很大的数据搬运成本。

在扩容前,有三个分片,扩容后,有四个分片。当扩容后,只有3个 key 没有被搬运,剩下的21个 key 都需要搬运,当数据量变大时,搬运成本就会很大。

一致性哈希算法

  1. 将 0 - 2 ^ 32 - 1 的数据空间,映射到一个圆上,数据按顺时针方向增长
  2. 现有三个分片,就将圆分成三个区域
  3. 现在有一个 key,
http://www.dtcms.com/a/456970.html

相关文章:

  • 【MYSQL】SQL学习指南:从常见错误到高级函数与正则表达式
  • 个人网站开发 怎么赚钱吗wordpress阿里图标库
  • 镇江网站推广排名有回定ip怎么做网站
  • Windows 11系统鼠标键盘被禁用问题的全面解决方案
  • 多字节串口收发IP设计(一)概述
  • python如何使用abd操作手机
  • PHP SimpleXML 深入解析与应用
  • C# MVC 修复DataTable时间排序以及中英文系统的时间筛选问题
  • 【netty实战】从零构建一个带GUI的简易聊天室
  • 阿里云无主体新增网站阿里云网站用什么做的
  • 做营销策划的上哪个网站好做房产的网站排名
  • 深入理解CSS BFC:块级格式化上下文
  • 226. 翻转二叉树 LeetCode 热题 HOT 100
  • Python人工智能编程从零开始掌握机器学习基础
  • Linux V4L2框架详解:Camera软件架构与驱动实现
  • javaweb--JavaScript
  • CachyOS:面向游戏的 Arch Linux 优化与安装配置指南
  • Encoder-Decoder架构的模型简介
  • 哪些网站适合花钱做推广房产网新房
  • OpenTiny 进阶学习指南:从全景到精微的高效成长之路
  • 制作网站电话如何在本地安装wordpress
  • 9-mysql编程
  • 十堰专业网站建设科技公司网站设计欣赏
  • [linux仓库]信号快速认识[进程信号·壹]
  • 【开题答辩实录分享】以《走失人口系统档案的设计与实现》为例进行答辩实录分享
  • 【智能体】Ch3-提升模型性能的定向学习(Enhancing model performance with targeted learning)
  • 【LLM】大模型vibe coding(cursor、copilot、comate)
  • 如何创建网站教程视频react做前台网站
  • Web 开发 24
  • 深入理解RNN及其变体:从传统RNN到LSTM、GRU(附PyTorch实战)