系统架构设计师
一、计算机基础
自然连接
属性列相同只显示一次
属性列相同的行相同的记录
A | B | C | A | C | D |
---|---|---|---|---|---|
a | b | c | a | c | d |
b | a | d | d | f | g |
c | d | e | b | d | g |
d | f | g |
- AI芯片的技术架构GPU、FPGA、ASIC、TPU
- POP3,邮件接收协议,缺省端口110
- SMTP,邮件发送协议,缺省端口25
- HTTP,超文本传输协议,缺省端口80
- IMAP,交互式邮件存取协议,缺省端口143
1、先找出从未在右边出现过的属性,必然是候选键之一。
2、以该属性位基础,根据依赖集依次扩展,看能否遍历所有属性,将无法遍历的加入候选键中。
操作系统
- PV操作
- Passeren阻塞 Vrijgeven唤醒
- 头只有V无P
- 尾只有P无V
- 选AC
文件管理
一级间接索引,保存一个索引表,代表5个地址项,对应5个物理块
二级间接索引,保存5个索引表,每个索引表代表5个物理块
最大长度:6 * 4 + 1024 * 4 + 1024 * 1024 * 4 = 4198424
一级间接索引是一个磁盘索引块4k,每个地址项大小4字节,所以一共4*1024B/4B=1024块地址项
直接索引:对应逻辑块号0-5
一级间接索引:6-1029
二级间接索引:1030-
计算机网络
二、信息系统基础
三、信息安全
四、软件工程
五、系统分析
六、系统设计
七、数据库
八、系统架构设计
九、软件可靠性设计
4/5/6/7/8 案例题
十、大数据架构设计
十一、未来信息技术
十二、运筹学
十三、知识产权
十四、案例分析
架构设计方向
a需求、b安全性、c可用性、d需求、e可用性、f性能、g可修改、h安全性、i可修改、j性能、k需求、l需求
论文
质量属性
性能、安全性、可修改性,可用性
质量特性
敏感点:为了实现某种特定的质量属性,一个或多个构件所具有的特性。
权衡点:指影响多个质量特性,并对多个质量特性来说都是敏感点的质量特性。
风险:不以标准术语出现。某些做法有一些隐患可能导致一些问题。
非风险:某些做法是可行的,可接受的。
Redis
string、hash、set、zset、list
为了保证数据的一致性,读写数据的基本操作步骤为:
读数据
1、根据key读缓存;
2、读取成功则直接返回;
3、若key不在缓存中,根据key读数据库;
4、读取成功后,写缓存;
5、成功返回。
写数据
1、根据key值写数据库;
2、成功后更新缓存key值;
3、成功返回。
过期策略
策略 | 描述 | 优点 | 缺点 |
---|---|---|---|
定时删除 | 在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除 | 保证内存被尽快释放 | 1、若过期key很多,删除这些key会占用很多的CPU时间,在CPU时间紧张的情况下,会延误业务的执行 2、定时器的创建耗时,若为每一个设置过期时间的key创建一个定时器(将会有大量的定时器产生),性能影响严重 |
惰性删除 | key过期的时候不删除,每次从数据库获取key的时候去检查是否过期,若过期,则删除,返回null。 | 删除操作只发生在从数据库取出key的时候发生,而且只删除当前key,对CPU时间的占用比较少。 | 若大量的key在超出超时时间后,很久一段时间内,都没有被请求过,那么可能发生内存泄露(无用的垃圾占用了大量的内存) |
定期删除 | 每隔一段时间执行一次删除过期key操作 | 1、通过限制删除操作的时长和频率,来减少删除操作对CPU时间的占用(避免"定时删除"的缺点) 2、定期删除过期key(避免"惰性删除"的缺点) |
1、在内存使用方面,不如"定时删除" 2、在CPU时间方面,不如"惰性删除" |
内存淘汰机制
机制 | 描述 |
---|---|
volatile-lru 最近最少使用 |
从已设置过期时间的key中,移出最近最少使用的key进行淘汰 |
volatile-lfu 最不经常使用 |
从已设置过期时间的key中选择最不经常使用的进行淘汰。 |
volatile-random 随机淘汰算法 |
从已设置过期时间的key中随机选择key淘汰。 |
volatile-ttl 生存时间淘汰 |
从已设置过期时间的key中,移出将要过期的key。 |
allkeys-lru | 从所有key中选择最近最少使用的进行淘汰 |
allkeys-lfu | 从所有key中选择最不经常使用的进行淘汰。 |
allkeys-random | 从所有key中随机选择key进行淘汰 |
数据持久化
RDB内存快照(RedisDataBase) | AOF日志(Append Only Flie) | |
---|---|---|
说明 | 把当前内存中的数据集快照写入磁盘(数据库中所有键值对数据)。恢复时是将快照文件直接读到内存里。 | 通过持续不断地保存Redis服务器所执行的更新命令来记录数据库状态,类似mysql的binlog。恢复数据时需要从头开始回放更新命令。 |
磁盘刷新频率 | 低 | 高 |
文件大小 | 小 | 大 |
数据恢复效率 | 高 | 低 |
数据安全 | 低 | 高 |
Redis缓存异常问题
1、缓存穿透
2、缓存雪崩
3、缓存击穿