[ 后端基础Day15 | 青训营笔记]

88 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第15天

RDMS

01经典案例

02发展历史

人工管理=》文件系统=》数据库管理系统(DBMS)

网状模型

层次模型:树形结构

关系模型:二维表

image-20230213104236798.png

SQL语言

03关键技术

image-20230213105101355.png

Sql引擎

Parser解析器一般分为词法分析、语法分析、语义分析

image-20230213105257432.png

优化器optimizer

基于规则的优化

基于代价的优化

image-20230213105642860.png

执行器Executor

向量执行

编译执行

存储引擎

image-20230213110321819.png

Buffer pool

image-20230213111505815.png

Page

事务引擎

image-20230213120443745.png

image-20230213120707425.png

04企业实践

大流量:

单节点写容易成为瓶颈

单机数据容量上限

解决方案:

业务数据进行水平拆分

代理层进行分片路由

效果:

数据库写入性能线性扩展

数据库容量线性可扩展

image-20230213121154706.png

突增流量:

活动流量上涨

集群性能不满足要求

解决方案:

扩充db物流节点数量

利用影子进行压测

image-20230213121429593.png

代理连接池

稳定性和可靠性

image-20230213121646445.png

三机房部署、proxy、监控报警

HA管理

image-20230213121907413.png

Redis

01Redis是什么?

缓存中间件

02Redis实战

连续签到

image-20230215094147862.png

image-20230215094819599.png

消息通知

list作为消息队列

生产端推送文章到list队列,消费端对其进行消费放入ES

image-20230215094923549.png

image-20230215095323195.png

image-20230215095342993.png

计数

pipeLine可以减少网络传输

image-20230215095409115.png

image-20230215101056142.png

排行版

image-20230215101320230.png

image-20230215101651563.png

image-20230215101817756.png

限流

image-20230215101852554.png

分布式锁

image-20230215102112578.png

setnx不能做成高可用分布式锁

业务超时解锁,导致并发问题,业务执行时间超过超时时间

redis主备切换临界点问题,主备切换后,A持有的锁还未同步到新的主节点时,b可以在新主节点获得锁

redis集群脑裂,导致出现多个主节点

03Redis使用注意事项

大key问题(value很大)

image-20230215103002461.png 解决:

1.拆分

2.压缩(JSON字符串推荐MessageOack序列化)

image-20230215103314411.png

image-20230215103443274.png JAVA有Guava

image-20230215103808279.png

image-20230215104012659.png

缓存穿透解决方案:

缓存空值

布隆过滤器:存储是否存在key

缓存雪崩:

失效时间分开

集群部署