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

做推广送网站免费建站设计公司企业画册

做推广送网站免费建站,设计公司企业画册,wordpress扒皮,wordpress 列表展开收缩Redis分片集群(Redis Cluster)是Redis官方提供的分布式解决方案,它允许数据自动分布在多个Redis节点上,提供高性能、高可用的Redis服务。 主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决: 海量数据存储问题 高并发…

        Redis分片集群(Redis Cluster)是Redis官方提供的分布式解决方案,它允许数据自动分布在多个Redis节点上,提供高性能、高可用的Redis服务。

主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决:

  • 海量数据存储问题

  • 高并发写的问题

使用分片集群可以解决上述问题,如图:

分片集群特征:

  • 集群中有多个master,每个master保存不同数据

  • 每个master都可以有多个slave节点

  • master之间通过ping监测彼此健康状态

  • 客户端请求可以访问集群任意节点,最终都会被转发到正确节点

1.散列插槽

        Redis 分片集群引入了哈希槽的概念,Redis 集群有 16384 个哈希槽,每个 kev通过 CRC16 校验后对 16384 取模来决定放置哪个槽,集群的每个节点负责一部分 hash 槽。

1.1 插槽原理

Redis会把每一个master节点映射到0~16383共16384个插槽(hash slot)上,查看集群信息时就能看到:

数据key不是与节点绑定,而是与插槽绑定。redis会根据key的有效部分计算插槽值,分两种情况:

  • key中包含"{}",且“{}”中至少包含1个字符,“{}”中的部分是有效部分

  • key中不包含“{}”,整个key都是有效部分

        那么依据以上插槽原理,如果想要进行定点存储,也就是同一种类型数据存储到相同的节点上,那么我们就可以定义{}中的有效部分是相同的。

2.集群伸缩

Redis分片集群的伸缩是指动态增加或减少集群节点的能力,包括扩容缩容两种操作。

集群伸缩的核心机制就是哈希槽的重分配

  • Redis Cluster将数据划分为16384个哈希槽

  • 伸缩本质是重新分配这些槽位到不同节点

  • 槽位迁移是原子操作,保证数据一致性

3.故障转移

Redis分片集群的故障转移是其高可用性的核心保障,能够在节点故障时自动进行主从切换,确保服务持续可用。

3.1 自动故障转移

        自动故障转移就是其他的master检测不到宕机的master,确认其真的下线了,就会选取其slave为新的master,当宕机的实例恢复后会成为slave。

3.2 手动故障转移

        当我们想要实现数据迁移时,可以进行手动转移操作:
        利用cluster failover命令可以手动让集群中的某个master宕机,切换到执行cluster failover命令的这个slave节点,实现无感知的数据迁移。其流程如下:

这种failover命令可以指定三种模式:

  • 缺省:默认的流程,如图1~6歩

  • force:省略了对offset的一致性校验

  • takeover:直接执行第5歩,忽略数据一致性、忽略master状态和其它master的意见

4.Docker搭建Redis分片集群

Docker搭建Redis分片集群(内涵原理验证)https://blog.csdn.net/m0_74808313/article/details/149331126?spm=1011.2124.3001.6209

5.相关面试问题

5.1 redis分片集群有什么作用?

        redis分片集群是redis提供的一种高并发和高可用性的分布式方案,主要解决的是海量数据存储和高并发写的场景。

        首先,集群中有多个master,每个master之间通过心跳机制相互检测,类似于哨兵机制,可以进行自动故障转移,保障了服务的高可用性。

        其次,每个master还可以配置多个slave,提高了服务的高并发性。

        最后,客户端可以访问任意的节点,最后请求可以被转发到相应的节点访问。

5.2 redis分配集群中的数据是如何进行存储和读取的?

        redis分片集群中提出了哈希槽的概念,一共有16384个哈希槽,数据不是存储到节点上的,而是存储到哈希槽中,为节点分配一定范围的哈希槽。

        key通过CRC16校验,然后对16384取余来决定存储到哪个哈希槽中。

        读取也是相同的逻辑。

http://www.dtcms.com/a/457754.html

相关文章:

  • 甘肃省建设厅执业资格注册中心网站通知网站建设和维护怎么学
  • 【VSCode】Visual Studio Code
  • 网站建设公司哪家强网站权重提升
  • Python Web开发中的WSGI与ASGI:从传统到现代的接口演进
  • PostgreSQL索引选B-Tree还是GiST?“瑞士军刀”和“多面手”的差别你居然还不知道?
  • 链表经典算法题详解教程
  • 唐山网站建设汉狮怎么样上海牛人岛企业服务有限公司
  • 微网站开发平台wizi网站建设板块如何分类
  • 【材料学python入门】conda、 jupyter、cpu、GPAW、wsl、ubuntu
  • 完整酒店网站开发威海建设网站
  • 高速采集卡ESD方案介绍及验证
  • 建个公司网站一年多少钱wordpress ios7教程
  • 做网站有2个前提条件 一个是网站godaddy做网站
  • 手机网站和微信网站的区别潍坊企业网站建设
  • Qt 支持的绿色系英文颜色(Green Family)
  • 找代做海报的网站广西建筑模板
  • 网站icp备案费用门户网站创新的方式有
  • 购买商标去哪个网站个人所得税app下载
  • Fedora 38 安装 perl-JSON RPM 包步骤(含依赖问题解决及附安装包)​
  • 大岭山建设网站wordpress cx udy
  • 电阻的分类与应用
  • 网站自建系统股票网站开发
  • 网站优化推广 siteasp.net 大型网站开发
  • C++游戏编程入门(第三版)——Timber!!! 项目(章节 1–5)
  • [Linux系统编程——Lesson4.进程状态]
  • PostIn入门到实战(8) - 如何对接口进行全方位自动化测试,有效确保接口质量
  • 平顶山网站网站建设有赞小程序定制开发
  • 冲床电脑控制器说明书
  • 企业网站优化推广怎么做宁波信息港
  • SortedList