这是我参与「第五届青训营 」伴学笔记创作活动的第15天
RDMS
01经典案例
02发展历史
人工管理=》文件系统=》数据库管理系统(DBMS)
网状模型
层次模型:树形结构
关系模型:二维表
SQL语言
03关键技术
Sql引擎
Parser解析器一般分为词法分析、语法分析、语义分析
优化器optimizer
基于规则的优化
基于代价的优化
执行器Executor
向量执行
编译执行
存储引擎
Buffer pool
Page
事务引擎
04企业实践
大流量:
单节点写容易成为瓶颈
单机数据容量上限
解决方案:
业务数据进行水平拆分
代理层进行分片路由
效果:
数据库写入性能线性扩展
数据库容量线性可扩展
突增流量:
活动流量上涨
集群性能不满足要求
解决方案:
扩充db物流节点数量
利用影子进行压测
代理连接池
稳定性和可靠性
三机房部署、proxy、监控报警
HA管理
Redis
01Redis是什么?
缓存中间件
02Redis实战
连续签到
消息通知
list作为消息队列
生产端推送文章到list队列,消费端对其进行消费放入ES
计数
pipeLine可以减少网络传输
排行版
限流
分布式锁
setnx不能做成高可用分布式锁
业务超时解锁,导致并发问题,业务执行时间超过超时时间
redis主备切换临界点问题,主备切换后,A持有的锁还未同步到新的主节点时,b可以在新主节点获得锁
redis集群脑裂,导致出现多个主节点
03Redis使用注意事项
大key问题(value很大)
解决:
1.拆分
2.压缩(JSON字符串推荐MessageOack序列化)
JAVA有Guava
缓存穿透解决方案:
缓存空值
布隆过滤器:存储是否存在key
缓存雪崩:
失效时间分开
集群部署