分片架构,Redis Cluster 分析

这篇具有很好参考价值的文章主要介绍了分片架构,Redis Cluster 分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

分片架构解决的问题

通过堆机器,提升读写性能,与存储性能

分片架构设计要点

分片规则 

选择Cardinality大的作为分片键,尽可能保证数据分布均匀

常见分片键: 基于主键(业务型数据),基于时间(流水型数据)

常见分片策略:

分片策略

实现举例

数据分布

以后扩展

基于Hash

hash(分片键)%分片数

一致性hash算法

数据分布均匀

不易扩容,扩容需要数据迁移

范围分片

例如按年分,按月,按日

数据分表可能不均匀

易扩展,扩展不需要数据迁移

路由规则

客户端如何找到数据所在分片

  •  静态路由: 配置文件。特点: 简单,不能扩展再平衡,例如:Mysql分表
  • 动态路由:实现复制,支持动态扩展,再平衡

动态路由方式

基本流程

特点

举例

配置中心

配置中心记录分片信息,客户端先访问配置中心,

获取分片信息之后进行读写操作

支持大规模集群,配置中心需要独立部署,需要高可用

MongoDB的Sharding模式

路由转发

所有分片都保存路由信息,客户端请求任意分片,

获取分片信息之后进行读写操作

架构简单,一般利用gossip协议,不支持大规模集群

Redis Cluster (官方推荐1000,实际建议100)

高可用

备份方式

特点

举例

独立备份

架构简单,硬件成本高,分片级别的复制

Mysql ,Redis等

相互备份

架构复杂,硬件成本低,数据块级别的复制

ElasticSearch 等

redis cluster 分析

特点

理论支持1000台,实际建议100台以内。 高性能,线性可扩展,无代理,异步复制。

架构图- 来自阿里云溪社区

分片架构,Redis Cluster 分析

分片规则

分片键

redis的key

分片方式

类似一致性Hash, 通过CRC16算法计算出来的哈希值,对16384(2^14)取模,取模之后得到的值就是对应的槽位,然后每个Redis节点都会负责处理一部分的槽位。

扩展1 一般hash算法缺点

hash(键值)%分片数量,如果有分片挂掉,分片数量会下降,整个集群会失效。

扩展2 一致性hash算法

CRC16算法计算出来的哈希值,对2^32取模

实例也分布在圆环(0-2^32)上,我们在圆环上按照顺时针的顺序找到第一个实例

分片架构,Redis Cluster 分析

实例可能分布不均匀,采用虚拟节点机制解决

分片架构,Redis Cluster 分析

路由规则

路由转发模式,一般利用gossip协议,所有分片都保存路由信息,客户端请求任意分片

集群为了分布均匀,再平衡,或,添加,删除master实例,存在重定向的情况。

重定向

场景

命令

说明

全部迁移完成的情况下

MOVED命令

1.MOVED把客户端所请求数据的最新实例地址返返回客户端

2.更新客户端缓存的哈希槽分配信息

哈希槽数据还在迁移中

ASK

1.ASK 命令把客户端所请求数据的最新实例地址返回给客户端

2.客户端需要给目标实例 发送 ASKING 命令,然后再发送操作命令

3.不更新客户端缓存的哈希槽分配信息

分片架构,Redis Cluster 分析

备份方式

独立备份

故障转移

某一个节点认为A宕机了,那么此时是主观宕机

集群内超过半数的节点认为A挂了, 那么此时A就会被标记为客观宕机

从A节点的slave节点中选举出一个,将其切换成新的master对外提供服务文章来源地址https://www.toymoban.com/news/detail-465593.html

到了这里,关于分片架构,Redis Cluster 分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL高可用解决方案――从主从复制到InnoDB Cluster架构

    2024送书福利正式起航 关注「哪吒编程」,提升Java技能 文末送5本《MySQL高可用解决方案――从主从复制到InnoDB Cluster架构》 大家好,我是哪吒。 爱奇艺每天都为数以亿计的用户提供7x24小时不间断的视频服务。通过爱奇艺的平台,用户可以方便地获取海量、优质、高清的视频

    2024年04月16日
    浏览(34)
  • es索引分片重新分配cluster.routing.allocation

    Index-level shard allocation filtering | Elasticsearch Guide [master] | Elastic index.routing.allocation.include.{attribute} Assign the index to a node whose  {attribute}  has at least one of the comma-separated values. index.routing.allocation.require.{attribute} Assign the index to a node whose  {attribute}  has  all  of the comma-separated values. i

    2024年02月09日
    浏览(45)
  • MySQL高可用解决方案演进:从主从复制到InnoDB Cluster架构

    💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】 🤟 基于Web端打造的:👉轻量化工具创作平台 💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 当谈论MySQL高可用性解决方案时,从最初的主从复制到现代的InnoDB Cluster架构经历了长足的演进。这些解决

    2024年02月03日
    浏览(44)
  • 五分钟讲透 Redis Lua脚本,以及Redis cluster集群模式下的 command keys must in same slot 解决方案 redis hash tag

    lua是一种轻量小巧的 脚本语言 ,用标准 C语言编写 并以源代码形式开放, 其设计目的是为了嵌入应用 程序中,从而为应用程序提供灵活的扩展和定制功能。 Lua应用场景:游戏开发、独立应用脚本、Web应用脚本、扩展和数据库插件。 OpenRestry:一个可伸缩的基于Nginx的Web平台

    2024年02月14日
    浏览(38)
  • 【MongoDB】集群搭建实战 | 副本集 Replica-Set | 分片集群 Shard-Cluster | 安全认证

    副本集 MongoDB副本集(Replica Set)是一组维护相同数据集的 MongoDB 实例,它可以提供数据的冗余和高可用性。 副本集由一个主节点(Primary)和多个从节点(Secondary)组成。 客户端所有写操作都会发送到主节点,主节点会记录oplog,然后将写操作同步到从节点。 从节点可以进行

    2024年02月05日
    浏览(44)
  • 复制架构,Redis Sentinel分析

    存储高可用,一般采用复制架构,复制架构,需要关注故障架构和状态决策2个要点 复制格式 格式 优点 缺点 举例 命令 数据量小 可能存在数据不一致 Mysql 的statement同步方式,按commit顺序同步,可能存在数据不一致 Redis 的 AOF,每个操作室幂等的。 MongoDB的oplog ,oplog中每个操

    2024年02月06日
    浏览(82)
  • Redis 哨兵架构、集群选举原理分析-04

    sentinel哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点。 哨兵架构下client端第一次从哨兵找出redis的主节点,后续就直接访问redis的主节点,不会每次都通过 sentinel代理访问redis的主节点,当redis的主节点发生变化,哨兵会第一时间感知到,并且将新的red

    2024年02月09日
    浏览(36)
  • 【Redis】浅谈Redis-集群(Cluster)

    下面我们来看看redis的集群实现。 redis集群,即对redis的一种水平扩容,主要解决并发写量太大有性能瓶颈,单台redis容量限制的问题。 n3:一个集群至少有3个master,新master的选举需要大于半数的集群master节点同意才能选举成功,如果只有两个master节点,其中一个宕机了,达不

    2024年02月07日
    浏览(43)
  • redis 集群模式(redis cluster)介绍

    目录 一    redis cluster 相关定义 1, redis cluster 是什么 2,redis 集群的组成 3,集群的作用 4,集群架构图 二     Redis集群的数据分片 1,哈希槽是什么 2,哈希槽如何排布 3,Redis集群的主从复制模型 4,哈希槽架构图 三     实验模拟redis 集群 1,实验环境 2,清理实验环

    2024年04月13日
    浏览(41)
  • redis cluster集群搭建

    启动6个redis实例 创建6份配置文件 7001文件夹创建配置文件redis.conf 然后copy到其他文件夹,记得改端口号,还有cluster-config-file的值,这个值不能重,必须唯一,否则无法启动 启动6个独立的redis实例 确认是否全部启动成功 启动redis cluster –cluster-replicas 1表示每个master一个slave

    2024年02月09日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包