week5 学习总结
缓存
什么是缓存?
Cache与Buffer的区别?
Cache:缓存
Buffer:缓冲区
缓存无处不在
CPU,操作系统,数据库,JVM,CDN,代理与反向代理,应用程序,分布式对象
缓存以KV形式存在
关键指标
命中率
影响命中率的主要指标:
缓存键集合大小:一定要想办法减少可能的缓存键数量。键数量越少,缓存的效率越高。
缓存可使用内存空间:物理上能缓存的对象越多,缓存命中率就越高。
缓存对象生存时间:对象缓存的时间越长,缓存对象被重用的可能性就越高。
代理缓存
反向代理缓存
多层反向代理缓存
内容分发网络CDN
通读缓存
旁路缓存
浏览器对象缓存
本地对象缓存
一致性哈希算法
各种介质数据访问延迟
缓存是系统性能优化的大杀器
正确使用缓存:缓存是帮助提升数据读取速度的,不能缓存进行存储
合理使用缓存:写多读少的场景不适合,读写比2:1以上,才有意义
要存热点
注意数据不一致
缓存失效后最好的方法是删除,而不是更新
缓存雪崩
缓存预热
缓存穿透
Memcache:客户端实现服务器选择
Redis:内置16384个桶,根据Key算出桶,集群保存桶与服务器的映射关系。
消息队列与异步架构
同步VS异步
异步调用架构 是通过 消息队列构建的
点对点模型
发布订阅模型
MQ产品:
RabbitMQ
ActiveMQ
RocketMQ
Kafka
负载均衡架构
HTTP重定向负载均衡
DNS负载均衡
反向代理负载均衡
IP负载均衡
数据链路层负载均衡
负载均衡算法:
轮询
加权轮询
随机
最少连接
源地址散列
分布式数据库
主从复制
一主多从复制:分摊负载,专机专用,便于冷备,高可用
主主复制: 不能并发写入,没有增加写并发能力和存储能力,更新表结构会导致巨大同步延迟
评论