第17章集群

ashoftime ashoftime     2022-12-06     373

关键词:

  集群是Redis提供的Redis数据库分布式方案。

  为什么需要分布式Redis

  1. 提高性能。突破单机数据库性能瓶颈。
  2. 提高可用性。通过主从复制提供故障转移,进一步提高整个系统的稳定性。

17.1 节点

  节点(Nod)是集群(Cluster)基本组成元素,节点就是普通的Redis数据库,只不过该数据库运行在进群模式下。节点之间通过Cluster Meet彼此握手实现集群化。

技术图片

17.2 槽指派

  有点像HashMap,整个集群所有的数据被划分为16384个槽,每一个数据都要先经过复杂的哈希函数计算出位于哪个槽上才能进一步放到负责该槽的Redis上。这是一种去中心化的分片策略。

17.2.1 槽指派的存储

  槽指派信息存储在两个地方:1、每个Node节点内部存储该节点负责哪个槽 2、Cluster存储每一个槽由哪一个节点负责。当一个请求来到某个Node上,该Node首先检查该请求对应的槽是否是自己负责,如果是则处理,如果不是则通过Cluster中存储的槽与Node对应信息找到能够处理该请求的Node,并转发给该Node。

  

17.3 在集群中执行命令

  只有16384个槽全部分配了处理节点后集群才会处于上线状态。

技术图片

 

  • 通过CRC32算法,其实就是一个哈希算法,对指定的key算出哈希值,然后对16383取余得到一个0-16384之间的数作为槽索引
  • 如果该槽是自己负责,则处理并相应
  • 如果不是自己负责,则活返回一个Moved错误给客户端,并携带该槽处理节点的IP和port,客户端会根据Moved的结果重新发送一次请求,并更新本地的槽映射表

 

17.4 重新分片

  


  

第17章(中)--集合

1.ArrayList底层结构和源码分析    ArrayList的全面说明 1)     Resizable-arrayimplementationoftheListinterface[ArrayList实现了List的接口,底层是一个数组,并实现可变的功能.]ArrayList属性:transi 查看详情

第08章elasticsearchjavaapi

...容使用客户端对象(clientobject)连接到本地或远程ElasticSearch集群。逐条或批量索引文档。更新文档内容。使用各种ElasticSearch支持的查询方式。处理ElasticSearch返回的错误信息。通过发送各种管理指令来收集集群状态信息或执行管理... 查看详情

第17章社区快速入门和模板

IdentityServer组织不维护这些示例。IdentityServer组织愉快地链接到社区模板,但不能对模板做出任何保证。请直接与作者联系。17.1各种ASP.NET核心安全样本https://github.com/leastprivilege/AspNetCoreSecuritySamples17.2IdentityServer4EF和ASP.NETIdentity此... 查看详情

《构建之法》第4.17章读书笔记

 《构建之法》第4.17章读书笔记第四章原文语句:      异常不能跨过DLL或进程的边界来传递信息,所以异常不是万能的。提出问题:      1.什么是DLL?DLL是来解决什么问题的?网上... 查看详情

第17章css边框与背景(上)

第17章CSS边框和背景[上]学习要点:1.声明边框2.边框样式3.圆角边框本章主要探讨HTML5中CSS边框和背景,通过边框和背景的样式设置,给元素增加更丰富的外观。一.声明边框边框的声明有三个属性设置,样式表如下:属性 值 ... 查看详情

第17章css边框与背景(下)

第17章CSS边框与背景[下]学习要点:1.设置背景本章主要探讨HTML5中CSS边框和背景,通过边框和背景的样式设置,给元素增加更丰富的外观。一.设置背景盒模型的尺寸可以通过两种方式实现可见性,一种就是之前的边框,还有一... 查看详情

lua_第17章数学库

第17 章数学库     在这一章中(以下关于标准库的几章中相同)我的主要目的不是对每个函数给出完整地说明,而是告诉你标准库可以提供什么功能。为了可以清楚地说明问题,我可能会忽略一些小的选项或... 查看详情

精读《构建之法》第4章与第17章

...获,通过本次阅读我认识了不少之前从未注意过的问题。第4章中提出了许多编程方面的规范和两人合作结对编程的阶段和技巧,第17章有许多生动的故事来形容“人”“效绩”“职业道德”之间的各种道理,并提出了一些令人值... 查看详情

第17章:攻无不克,通过三级缓存解决循环依赖

作者:小傅哥博客:https://bugstack.cn沉淀、分享、成长,让自己和他人都能有所收获! 查看详情

第17章发现过拟合和欠拟合

第17章发现过拟合和欠拟合     我们现在将更深入的研究和讨论在深度学习背景下的过拟合和欠拟合(underfittingandoverfitting)。这里将提供一些图表来将它们匹配到你自己的训练损失/精确度曲线上,这个对于第... 查看详情

需求工程思维导图

需求工程思维导图文章目录需求工程思维导图第1章需求工程导论第2章需求的基础理论第3章需求工程过程第4章需求获取概述第5章确定项目的前景和范围文档第6章面谈第7章原型第8章观察和文档第10章面向对象建模与UML概述第11章... 查看详情

读《构建之法》第4,17章有感

读《构建之法》第4,17章有感第四章:两人合作原文:另外,注释(包括所有的源代码)应该只用ASCII字符,不要用中文或其他特殊字符,否则会极大地影响程序的可移植性。我的问题和看法:对于英语水平没有那么高的人来说... 查看详情

第5章选举模式和zookeeper的集群安装5-1集群的一些基本概念

...我们的主节点。心跳机制,当有一个节点挂掉之后,整个集群还是可以工作的。选举模式,我们现在的master是正常运行的,但是在某些情况下它宕机了死机了,那么这个时候它这个集群里面就少了master,没有master两个slave需要去... 查看详情

第17章—前端分页(bootstrap-table)

springboot系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html码云源码地址:https://gitee.com/jinxiaohang/springboot   本篇重点介绍bootstrap-table,一款很棒的前端框架,需要bootstrap支持,可以用于数据的展示,后端没有实现数据分... 查看详情

读《构建之法》第4章第17章有感

第4章 两人合作问题1原文:P69 4.3.2 goto函数最好有单一的出口,为了达到这一目的,可以使用goto。只要有助于程序逻辑的清晰体现,什么方法都可以使用,包括goto。问题:对于goto语句,大一上学期C语言老师总是跟我... 查看详情

《elasticsearch源码解析与优化实战》第3章:集群启动流程(代码片段)

文章目录一、简介二、选举主节点三、选举集群元信息四、Allocation过程4.1、选主分片4.2、选副分片五、Indexrecovery5.0、为什么需要recovery?5.1、主分片recovery5.2、副分片recovery5.2.1、在`1.x`版本时代5.2.2、在`2.0~5.x`版... 查看详情

《elasticsearch源码解析与优化实战》第3章:集群启动流程(代码片段)

文章目录一、简介二、选举主节点三、选举集群元信息四、Allocation过程4.1、选主分片4.2、选副分片五、Indexrecovery5.0、为什么需要recovery?5.1、主分片recovery5.2、副分片recovery5.2.1、在`1.x`版本时代5.2.2、在`2.0~5.x`版... 查看详情

日志分析第六章安装elasticsearch

在这里,以两台es集群为例。es集群健康状况有三种状态,这里我们搭建的es集群,只要两台不同时挂掉,数据不会丢失。green所有主要分片和复制分片都可用yellow所有主要分片可用,但不是所有复制分片都可用red不是所有的主要... 查看详情