系统架构师考试
系统架构师考试
总线
总线是一组能为多个部件分时共享的公共信息传送线路
共享:
分时:指同一时刻仅允许一个部件向总线发送信息,但允许多个部件同事从总线上接收相同的信息
串行总线(适合长距离传输)与并行总线(适合近距离连接,不易过场)
- 单工:只能发送功能或只能接收功能
- 半双工:轮流实现发送功能或接收功能
- 全双工:既能发送功能又能接收功能
总线宽度:总线的线数
总线带宽:每秒传输的字节数,B/S
总线的分类
- 数据总线(Data Bus,DB):CPU与RAM之间来回传送需要处理或是需要储存的数据
- 地址总线(Address Bus,AB):用来指定在RAM之中储存数据的地址
- 控制总线(Control Bus,CB):将微处理器控制单元的信号,传送到周边设备。
CISC与RISC
复杂指令集计算机(CISC,Complex Instruction Set Computers),x86系统主要用CISC
精简指令集计算机(RISC,Reduced Instruction Set Computers),ARM芯片主要用RISC
流水线
流水线加速比是大于1的所以
记忆公式
校验码
奇偶校验码
由若干位有效信息,再加上一个二进制位(校验位)组成校验码
奇偶校验,可以检查1位的错误,不可纠错
循环冗余校验码(CRC)
多项式,
可检查错误,不可纠错
海明校验
m已知信息为个数
r需要的校验位
TCP/IP协议族
IPV6
组成
由8个16进制构成
省写规则
遵守如下规则可以省写:
- 高位0可以省略(多次)
- 一段0可用1个0表示(多次)
- 连续多段0可用省略用::表示(1次)
示例如下:
分类
单播地址:用于单个接口的标识符,传统的点对点通信。
组播地址:多播地址,一点对多点的通信,数据包交付到一组计算机中的每一个。IPv6没有广播术语,而是将广播看做多播的一个特例。
任播地址:泛播地址,这是IPv6增加的一种类型。任播的目的站是一组计算机,但数据包在交付时只交付给其中一个,通常是最近的一个。
多播:前缀为 1111 1111
任播:前缀固定,其余位置为0
单播:一对一进行传递
IPv6规定每个网卡最少有3个IPv6地址,分别是链路本地地址、全球单播地址和回送地址(站点本地地址)。即在每台计算机中有3个IPv6地址
可聚合全球单播地址:前缀001
本地单播地址:
链路本地:前缀 1111 1110 10(一般以fe80开头)
站点本地:前缀 1111 1110 11
IPv6地址是自动分配,IPv6把自动分配指定为标准了。2种方式
全状态自动配置:IPv6继承了IPv4动态主机配置协议(DHCP)这种自动配置服务。
无状态自动配置:主机通过两个阶段分别获得链路本地地址和可聚合全球单播地址
IPv4、IPv6过度技术
- 双协议栈技术
- 隧道技术
- NAT-PT技术:NAT-TP使用网关设备链接IPv6和IPv4网络。当IPv4和IPv6节点相互访问时,NAT-PT网关实现两种协议的转换翻译和地址的映射。
网络接入技术
分类
有线接入技术
- 公用交换电话网络(PSTN)
- 数字数据网(DDN)
- 综合业务数字网(ISDN)
- 非对称数字用户线路(ADSL):上行和下行不一致,针对下载多于上传做了调整
- 同轴光纤技术(HFC)
无线接入技术
- IEEE 802.11(WiFi)
- IEEE 802.15(蓝牙 Bluetooth)
- ZigBee
- 红外(IrDA)
- WAPI
综合布线系统
物联网
是实现物物相连的互联网络,其中内涵包含两个方面
- 物联网的核心和基础仍然是互联网,是在互联网的基础上延伸和扩展的网络
- 其用户端延伸和扩展到了任何物体和物体之间,使其进行信息交换和通信
分层
感知层:识别物体、采集信息。如:二维码、RFID、摄像头、传感器
网络层:传递信息和处理信息。通过网与互联网的融合网络、网络管理中心、信息中心和智能处理中心
应用层:解决信息处理和人机交互的问题。
技术
射频识别技术(RFID)
二维码
常用码制: QR code、 PDF417、Code 49、Data Matrix、Maxi Code、Aztec、Vericode、Ultracode、Code 16K
云计算
是一种基于互联网的计算方式。通过这种方式,共享软硬件资源和信息可以按需提供给计算机和其他设备。云计算的核心思想,是将大量用网络连接的计算机资源统一管理和调度,构成一个计算机资源池向用户按需服务。提供资源的网络被称为“云”。
特点
- 集合了大量计算机,规模达到成千上万
- 多种软硬件技术相结合
- 对客户端设备的要求低
- 规模化效应
服务
- 软件即服务SaaS
- 平台即服务PaaS
- 基础设施即服务IaaS
系统配置与性能评价
性能指标
阿姆达尔解决方案
示例:
性能评价方法
测试精确度排名:真实的程序>核心程序>小型基准程序>合成基准程序
WBS是什么
ABSD是什么
基于架构的软件设计(Architecture-Based Software Design)方法是架构驱动的方法,方法是自顶向下,递归细化的方法,软件系统的体系结构通过该方法得到细化,直到能产生软件构建和类
2023模拟题上午错题集
第一题 注意把每个节点看完
6题 给定关系模式R(U,F),其中属性集U={A1,A2,A3,A4,A5,A6},函数依赖集F={A1→A2,A1→A3,A3→A5,A1A5→A6}。关系模式R的候选码为 (6) ,R属于 (7) 。 A A1A3 B A1A4 C A1A5 D A1A6 7题 A 1NF B 2NF C 3NF D BCNF
由于属性A1、A4的入度为0,所以候选码必然包含这两个属性,而从这两个属性能推出所有属性,所以A1A4组合键为候选码。
2NF的规定是消除非主属性对码的部分函数依赖,本题未消除该依赖,说明未达到2NF,只能选1NF 部分函数依赖:某个属性只由构成主键的部分列决定,而和另一些列无关。例如,对于关系:学生选课(学号,姓名,课程号,成绩),此关系的主键是(学号,课程号),而“姓名”列只由“学号”决定,与“课程号”无关,这就是部分依赖关系。 传递依赖:
13题 DhcpOffer是DHCP协议交互过程中,由DHCP服务器发送给DHCP客户端的报文,用于通知客户端分配的IP地址、网关、DNS服务器地址等配置信息。
- A DhcpAck
- B DhcpOffer
- C DhcpDecline
- D DhcpNack
DhcpOffer是DHCP协议交互过程中,由DHCP服务器发送给DHCP客户端的报文,用于通知客户端分配的IP地址、网关、DNS服务器地址等配置信息。
14题 数字签名首先需要生成消息摘要, 然后发送方用 (14) 对报文摘要进行加密。生成消息摘要的目的是 (15) 。
- A CA的公钥
- B CA的私钥
- C 自己的公钥
- D 自己的私钥
报文摘要用于为发送的报文生成一个非常小的摘要信息,这个摘要信息保证原报文的完 整性。即原报文只要有一位被改变, 则摘要信息就会不匹配,所以是用于防止篡改。
数字签名用发送方的私钥对摘要做加密不仅保证了摘要的私密性, 还可以防止抵赖,因为只有匹配的公钥能够解开。也就是说,如果用某人的公钥能够解开报文,说明就是某人做的。
20题
系统工程利用计算机作为工具,对系统的==结构、要素、信息和反馈==等进行分析,以达到==最优规划、最优 设计、最优管理和最优控制==等目的。
22题、23题
企业信息集成是指企业在不同应用系统之间实现数据共享, 即实现数据在不同数据格式和存储方式之间的转换。对来源不同、形态不一、内容不等的信息资源进行系统分析、辨清正误、消除冗余、合并同类,进而产生具有统一数据形式的有价值信息的过程。企业信息集成是一个十分复杂的问题,按照组织范围来分, 分为企业内部的信息集成和外部的信息集成两个方面;按集成内容, 企业内部的信息集成一般可分为4个方面, 即技术平台集成、数据集成、应用系统集成和业务过程集成。其中应用系统集成是实现不同系统之间的互操作,使得不同应用系统之间能够实现数据和方法的共享;业务过程集成使得在不同应用系统中的流程能够无缝连接, 实现流程的协调运作和流程信息的充分共享。
25题
螺旋模型(Spiral Model)是在快速原型的基础上扩展而成。也有人把螺旋模型归到快速原型,实际上,它是生命周期模型与原型模型的结合,这种模型把整个软件开发流程分成多个阶段,每一个阶段都由4部分组成。
27题
34题、35题
本题考查UML 2.0的图。其中交互图包括交互概览图、定时图、顺序图(序列图)与通信图(协作图),除此以外,动态模型还包括状态图和活动图等。
36题
软件设计包括体系结构设计、接口设计、数据设计和过程设计。 (1) 结构设计:定义软件系统各主要部件之间的关系。 (2) 数据设计:将模型转换成数据结构的定义,好的数据设计将改善程序结构和模块划分,降低过程复杂性。 (3) 接口设计(人机界面设计):软件内部、软件和操作系统之间,以及软件和人之间如何通信。 (4) 过程设计:系统结构部件转换成软件的过程描述。
45题
51题
视角与质量场景
57题
按照设计模式的目的进行划分,现有的设计模式可以分为3类,其中创建型模式通过采用抽象类所定义的接口,封装了系统中对象如何创建、组合等信息,其代表有Singleton模式等;结构型模式主要用于如何组合己有的类和对象以获得更大的结构,其代表有Adapter模式等;行为型模式主要用于对象之间的职责及其提供服务的分配方式,其代表有Visitor模式等。
61题
“机器人在正常运动过程中如果发现前方2米内有人或者障碍物,应在1s内停止并在2s内选择一条新的运行路径”属于性能属性场景,资源调度是其常见策略。
65题
注意识别正确还是错误的说法
2020年11月上午错题集
软件件脆弱性是软件中存在的弱点(或缺陷),利用它可以危害系统安全策略,导致信息丢失、系统价值和可用性降低。嵌入式系统软件架构通常采用分层架构,它可以将问题分解为一系列相对独立的子问题,局部化在每一层中,从而有效地降低单个问题的规模和复杂性,实现复杂系统的分解。但是,分层架构仍然存在脆弱性。常见的分层架构的脆弱性包括(B) 等两个方面。
A.底层发生错误会导致些个系统无法正常运行、层与层之间功能引用可能导致功失效
B.底层发生铝误会导致整个系统无法正常运行、层与层之问引入通信机制势必适成性能下阵
C.上层发生措误会导致整个系统无法正常运行,层与层之间引入通信机制势必造成性能下降
D.上层发生错误会导致整个系统无法正常运行、层与层之间功能引用可能导致功能失效
【解析】 此题实际上考察的是分层架构的缺点,分层架构缺点主要有: 级联修改问题。当业务流程发生变化时,所有层都需要修改。 性能问题。整个系统中层层传递,势必造成性能下降,同时也加大了开发的复杂度。 层层依赖问题。基础层(底层)被其他层依赖,它处于最核心的位置,一旦出错,必然影响上层的调用,从而可能导致系统异常,严重的甚至崩溃。
变动成本(variable cost ):指支付给各种变动生产要素的费用,如购买原材料及电力消耗费用和工人工资等。这种成本随产量的变化而变化,常常在实际生产过程开始后才需支付。
2022年11月系统架构设计师上午错题
U是属性集合
F是函数依赖集合
⊆ 为包含于符号
A1自反律:若属性集合Y包含于属性X,属性集合X包含于属性集合U,则可以根据X推导出Y(即:X可以决定出Y)
2021年11月系统架构师上午错题
5题
属性冲突:
结构冲突:同一实体在不同E-R图中属性个数和排列次序不同
命名冲突:
实体冲突:
11题
基于网络的数据库系统(Netware Database System,NDB)是基于4G/5G的移动通信之上,在逻辑上可以把嵌入式设备看作远程服务器的一个客户端。以下有关NDB的描述中,不正确的是
A. NDB主要由客户端、通信协议和远程服务器等三部分组成
B. NDB的客户端主要负责提供接口给嵌入式程序,通信协议负责规范客户端与远程服务器之间的通信,远程服务器负责维护服务器上的数据库数据
C. NDB具有客户端小、无需支持可剪裁性、代码可重用等特点
D. NDB是以文件方式存储数据库数据,即数据按照一定格式存储在磁盘中,使用时由应用程序通过相应的驱动程序或直接对数据文件进行读写
解析:如果一个NDB可不加剪裁得支持任何类型的嵌入式设备,则这个NDB不会太小,而嵌入式设备的存储及性能相对来讲都是有限的,因此NDB需要可剪裁,当然也需要代码可重用。
12题
AI芯片的关键特征:使用新型计算范式,具有训练和推理能力,具有大数据处理能力,可重构能力(针对领域而非应用)。支持低精度计算是AI芯片设计的一个发展方向,算不上是关键特征;AI芯片的开发需要工具的支撑,但不一定要专用,且开发工具也不能算是芯片的特征。
14题
Internet网络核心协议是TCP/IP协议,而TCP/IP协议是一种分组交换的协议,分组交换也叫包交换,它将接收的分组先进行存储再进行转发。所以Internet网络核心采取的交换方式为分组交换
15题
SDN(Software Defined Network)本质是将物理网络软件化,这样就可以像升级、安装软件一样对网络进行管理,方便更多的应用程序能快速部署到网络上。SDN网络架构有三层,分别是应用层、控制层、转发层。
应用层对应用用户不同的业务和应用
控制层主要负责处理数据平面资源的编排、维护网络拓扑、状态信息等
转发层负责用户数据的转发
18题
企业数字化转型的五个发展阶段依次是:初始级、单元级、流程级、网络级、生态级
2018年11月系统架构师上午错题
7题
相对于E2的自然连接来说E4少了R.A2=S.A2的操作,所以E4效率更高
10题
串行总线是计算机外部接口中常用的一种数据传输接口,适应于长距离数据传输使用。一般串行总线是按位(bit)传输的,采用校验码进行数据检验,串行总线的工作方式、传输位数、波特率等属性是通过程序可随时配置和更改的。串行总线的工作方式可分为全双工和半双工两种,数据状态一般分为满状态、空状态、就绪状态等。常用的全双工总线有RS-232等,半双工串行总线有RS-422等
11题
软件设计层面的功耗控制可以从以下几方面展开
1)硬件协同化设计,即软件的设计要与硬件的匹配,考虑硬件因素
2)编译优化,采用低功耗优化的编译技术
3)从算法角度进行优化
4)采用中断驱动技术和延时程序
5)进行电源的有效管理
15题
DHCP客户端接收到服务器的Dhcp Offer后,需要请求地址时发送Dhcp Request报文,如果服务器同意则发送Dhcp ACK,否则发送Dhcp Nack; 当客户方接收到服务器的Dhcp Ack报文后发现,提供地址有问题时发送Dhcp Decline拒绝该地址。
20、21题
31题
列举图与开发阶段的对应关系:
1)需求分析阶段:数据流图
2)概要设计阶段:模块机构图、层次图、HIPO图
3)详细设计阶段:程序流程图、PAD图、伪代码、盒图
32、33题
软件设计包括:结构设计、数据设计、接口设计和过程设计
1)结构设计:定义软件系统各主要部件之间的关系
2)数据设计:将模型转换成数据结构的定义,好的数据设计将改善程序结构和模块划分,降低过程复杂性。
3)接口设计(人机界面设计):软件内部、软件和操作系统之间,以及软件和人之间如何通信。
4)过程设计:系统结构部件转换成软件的过程描述。
39题
软件系统通过构件组装分为三个不同的层次:定制、集成和扩展。这三个层次对应于构件组装过程中的不同任务。
40题
一个POA实例通过将收到的请求传递给一个伺服对象(Servant)来对其进行处理。伺服对象是CORBA对象的实现,负责完成客户端请求。
42、43题
软件测试一般分为2大类:动态测试、静态测试
1)动态测试:指通过运行程序发现错误,包括黑盒测试法(等价类划分、边界值分析、错误推测、因果图)、白盒测试(逻辑覆盖、循环覆盖、基本路径法)和会和测试法
2)静态测试:采用人工和计算机辅助静态分析的手段对程序进行检测,包括桌前检查(桌面检查)、代码审查和代码走查
48题
SAAM和ATAM是两种常用的体系结构评估方法。
SAAM分为5个步骤:场景开发、体系结构描述、单个场景评估、场景交互和总体评估。SAAM的主要输入是问题描述、需求声明和体系结构描述。
ATAM是在SAAM基础上发展起来。ATAM包含四个主要活动领域,分别是场景和需求收集、体系结构视图和场景实现、属性模型构造和分析、折中。
49、50题
在仓库风格中有两种不同的构件:中央数据结构说明当前状态、独立构件在中央数据仓储上执行。仓库与外构件间的相互作用在系统中会有大的变化。按控制策略的选取和分类,可以产生两个主要的子类。若输入流中某类事件触发进程执行的选择,则仓库是传统的数据库;另外,若中央数据结构的当前状态触发进程执行的选择,则仓库是黑板。
57题
命令模式(Command)将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。
案例分析
软件架构
软件架构风格的定义
是描述某种特定应用领域中系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式反映了众多系统共有的结构和语义。
体系结构风格定义一个系统家族。体系结构风格反映了领域众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。
常用的软件架构风格
数据流体系结构风格:所有数据按照流的形式在执行过程中前进,数据经过序列间的数据处理组件进行处理,然后将处理结果向后传送,最后进行输出。优点是松耦合、良好的重用性、可维护性、可扩展性、良好的隐蔽性、支持并行。缺点是交互性差,复杂性较高,性能较差(每个过滤器都需要解析与合成数据)
架构风格名称 | 主要特点 | 主要优点 | 主要缺点 | 适合领域 |
管道-过滤器 | 过滤器性对独立 | 模块可复用、可维护性和可扩展性强、具有并发性、模块独立性高 | 不适用于交互性强的应用、有关联的数据需要协调 | 系统划分清晰的模块、模块性对独立、有清晰的模块接口 |
面向对象 | 是将数据表示和基本操作封装在对象中。这种模式的构件是对象,对象维护自身的完整性,对象之间通过消息机制进行通信,对象交互时需要知道彼此的标识,通过对象之间的协作完成计算过程 | 实现了封装;高度模块性;代码共享灵活;易维护;可扩充性好。 | 增加了对象之间的依赖关系 | 多种领域 |
事件驱动 | 构件不直接调用一个过程,而是触发或广播一个或多个事件。构件中的过程注册在一个或多个事件中,当某个事件被触发时,系统自动调用这个事件注册的所有过程。一个事件的触发就导致了另一个模块中的过程调用。这种风格中的构件是匿名的过程,它们之间交互的连接件往往是以过程之间隐式调用来实现的。 | 为软件复用提供了强大支撑,为构建的维护和演化带来了方便 | 削弱了对系统计算的控制能力;各个对象的逻辑关系复杂 | 一个系统对外部的表现可以从它对时间的处理表征出来 |
层次型 | 构建组织成一个层次结构,连接件通过决定层间如何交互的协议来定义,每层为上一层提供服务,使用下一层的服务,只能见到与自己相邻的层。通过层次结构,可以将大的问题分解为若干个渐进的小问题逐步解决,可以隐藏问题的复杂度。修改某一层,最多影响其相邻的两层(通常只能影响上层) | 支持系统设计过程中逐级抽象;可扩展性号;支持软件复用 | 不同层次之间耦合度高的系统很难实现 | |
以数据为中心的体系结构风格 | 主要分为2类,一类是传统的数据库;另一类是黑板。数据库是由输入流中的事件来驱动信息处理,把执行结构存储到中央数据单元。黑板则由中央数据单元的当前状态来驱动系统运行,来解决状态冲突并处理可能存在的不确定知识源。 | 数据中心风格容错性和健壮性好。便于多客户共享大量数据,不必关心数据的产生、由谁提供和如何提供;便于将构件作为知识源添加到系统中来;解决问题的多方法性;具有可修改性和可维护性;有可重用的知识源 | 不支持并行、执行效率低;需要同步机制、加锁机制来保障数据的完整性和一致性,增大了系统设计的复杂度;测试困难;开发成本高 | 黑板常用来信号处理,如语音识别、模式识别、机器翻译、句法分析等。 |
解释器风格 | 通常包括一个完成解释工作的解释器引擎、一个包括将解释的代码的存储区、一个记录解释器引擎当前工作状态的数据结构,以及一个记录源代码被解释器执行的进度的数据解结构。具有解释器风格的软件中含有一个虚拟机,可以仿真硬件的执行过程和一些关键应用,其缺点是执行效率较低。 | 可以用多种操作解释一个句子。灵活应对自定义场景 | 适合特定领域 执行效率较低 | 适用于模式匹配系统与语言编译器 |
控制环路 | 控制环路架构风格是将过程输出的指定属性维护在一个特定的参考值(设定点)。控制环路风格包括过程变量、被控变量、输入变量、操纵变量和设定点构件,通过收集实际和理想的过程状态信息,并能调整过程变量使得实际状态趋于理性状态 | 将控制理论引入到计算机软件体系结构中 | 适合特定领域 | 该系统中一定存在有目标的作用、信息处理闭环控制过程。 |
MVC的优点
SOA架构
SOA(Service-OrientedArchitecture),即面向服务的系统架构,是一个组件模型。
技术的横向对比
2022年11月下午
试题一
软件架构评估的质量属性
第二版书中8种软件架构评估的质量属性
- 性能:效率指标,处理任务所需时间或单位时间内的处理量
- 可靠性:是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力
- 可用性:系统能够正常运行的时间比例。经常用两次故障之间的时间长度或出现故障时系统能够恢复正常的速度来表示。
- 安全性:系统向合法用户提供服务并阻止非法用户的能力
- 可修改性:值能够快速地以较高的性价比对系统进行变更的能力。
- 功能性:是系统能完成所期望的工作的能力
- 可变性:指架构经扩充或变更而成为新架构的能力。
- 互操作性:通过可视化或接口方式提供更好的交互操作体验
https://blog.csdn.net/lanny2008/article/details/39931081
试题二
简要介绍数据流图在分层细化过程中遵循的数据平衡原则
层间平衡原则:不同层次中,相同数据流的个数与方向一致;
图内平衡:要避免有输入无输出的黑洞、有输出无输入的奇迹,输入不足的灰洞
数据流图和数据字典在软件需求分析和设计阶段的作用
在需求分析阶段,数据流图通过数据的输入、流向、处理过程,可以清晰地反映出系统必须完成的逻辑功能,从而今早发现是否有需要输入或输出的信息被泄漏,以及系统各个部分的逻辑是否存在错误;数据字典是描述数据的信息集合,通过数据字典可以使参与人员对模型中的元素有共同的理解。
在设计阶段,根据数据流图,通过变换分析和事务分析的方法,可设计出系统的模块结构(系统结构图);根据数据字典中的数据存储描述可建立数据库存储设计。
数据流图与流程图的区别(扩展)
数据流图作为一种图形化工具,用来说明业务处理过程、系统边界内的功能和系统的数据流
流程图以图形化的方式展示应用程序从输入到获得输出为止的逻辑过程,描述处理过程的控制流
试题五 MQTT
简要说明MQTT协议
MQTT(Message Queuing Telemetry Transport)即消息队列遥测传输协议,它是一个专门针对物联网开发的轻量级传输协议,旨在为位于不稳定的网络环境中的低算能、低带宽的边缘物联网设备提供可靠的网络服务。MQTT协议针对低带宽、低计算能力的网络设备做了特殊化的优化,使得其能适应物联网数据传输场景。
从数据通信、数据安全和系统性能等方面简要分析在传统云计算中引入边缘模型的优势
传统云计算模型中引入边缘计算模型的优势主要包括
- 数据通信方面,很多计算在边缘数据中心或边缘设备本身进行处理,数据无需传输回中央服务器,可极大减小网络负载
- 安全方面,边缘计算将在不同的数据中心和设备之间分配数据处理工作,黑客无法通过攻击一台设备来影响整个网络
- 系统性能方面,由于很多功能直接由边缘设备完成而不需要依赖于中央服务器,因此系统性能更高,入人脸识别就只需要边缘设备本身进行,不依赖于远程服务器的算力。
2020年11月下午
第一题 架构设计与评估
仓库风格与管道-过滤器风格比较
背一下,答不出来
第三题 Redis
Redis数据类型的应用
- String:最基本数据类型,最大512M。缓存、计数器、共享用户session、分布式锁、分布式系统的全局序列号
- list:按照添加顺序保持顺序的字符串列表。栈、队列、阻塞队列、最新列表
- set:无序的字符串结合,不存在重复元素。用户标签、好友/关注/粉丝/感兴趣的人集合、随机展示、黑/白名单、抽奖小程序
- sorted set:已排序的字符串集合,不允许重复。标签、共同好友/喜好、统计网站的独立IP、统计点赞/取消点赞、排行榜。
- hash:key-value对的集合,特别适合用于存储对象。存储对象、电商购物车
- bitmap:更细化的一种操作,以bit为单位
- hyperloglog:基于概率的数据结构,为V2.8.9新增
- geo:存储地理位置信息,对这些信息进行操作,V3.2新增
- stream:流,相当于消息队列的topic,为5.0新增
Redis内存淘汰机制
- volatile-lru:针对设置了过期时间的key,使用lru(最近最少使用)算法进行淘汰
- allkeys-lru:针对所有key使用lru算法进行淘汰
- volatile-lfu:针对设置了过期时间的key,进行lfu(最不经常使用)算法进行淘汰
- allkeys-lfu:针对所有key使用lfu算法进行淘汰
- volatile-random:针对设置了过期时间的key,使用随机淘汰机制进行淘汰
- allkeys-random:针对所有的key使用随机淘汰机制进行淘汰
- volatile-ttl:针对设置了过期时间的key,越早过期的越先被淘汰
- noeviction:不会淘汰任何数据,当使用空间超过maxmemory值时,再有请求来是返回错误。
第五题 SSM
采用标准的数据访问机制的原因
标准的数据访问机制提供了不同标准间的数据访问机制,它屏蔽了不同通信协议之间的差异,为上层应用程序提供统一的访问接口,可以容易地实现应用程序对不同总线协议设备的互操作,使得从底层的开发中脱离出来。它独立于平台,确保来自多个厂商的设备之间的信息无缝传输,具有语言无关性、代码重用性、易于继承性等优点。当硬件升级或需要修改时只需要改动硬件部分接口即可,不会影响上层应用程序。例如,工业自动化领域常用的OPC
论文
2022年3月,我参加了某垂直电商公司一站式大型仓储管管理系统的开发工作,该系统旨在为垂直电商不同类型的仓库提供、高效、统一、便捷的
设计模式
速记:
姓桥的代理,他组合适配器,(他的儿子)享元(拿回家)装饰外观。
多次(迭:多次的意思,迭代模式)命令(命令模式)、责(责任链模式)备(备忘录模式)中(中介者模式),车(策略模式)模(模板方法模式)见(观察者模式)状(状态模式),方(访问者模式)解释(解释器模式)。
容错技术
放到是 | 分段锁 |
水电费 | 放到 |