写点什么

总结 -05- 缓存

用户头像
梦子说
关注
发布于: 2020 年 07 月 08 日

缓存的关键指标

缓存命中率

缓存是否有效依赖于能多少次重用同一个缓存影响业务请求,这个度量指标被称为缓存命中率。

如果查询一个缓存,十次查询九次能够得到正确结果,那么它的命中率是 90%。

影响缓存命中率的主要指标

缓存键大小

缓存可使用内存空间

缓存对象生成空间

缓存类型

代理缓存

反向代理缓存

多层反向代理缓存

内容分发网络(CDN)

CDN 同时配置静态文件和动态内容

通读缓存(read-through)

代理缓存,反向代理缓存,CDN 都是通读缓存

通读缓存给客户端返回缓存资源,并在请求未命中缓存时获取实际数据

客户端链接的是通读缓存而不是生成响应的原始服务器

旁路缓存(cache-aside)

对象缓存是一种旁路缓存,旁路缓存通常是一个独立的键值对存储

应用代码通常会询问对象换粗需要的对象是否存在,如果存在,它会获取并使用缓存的对象,如果不存在或已过期,应用汇链接主数据源来组装对象,并将其保存回对象缓存中以便将来使用

浏览器对象缓存

本地对象缓存

对象直接缓存在应用程序中

对象存储在共享内存中,同一台机器的多个进程可以访问它们

缓存服务器作为独立应用和应用程序部署在同一个服务器上

本地对象缓存构建发呢不是集群

远程分布式对象缓存

Memcached 分布式缓存对象缓存


Memcached 分布式缓存访问模型


分布式对象缓存的一致性 hash 算法


只是不求多,但求对掌握的知识掌握它的核心

学技术不仅学技术本身,更要学会技术背后的思想,学会技术的架构

 

消息队列、异步架构

队列:发布订阅模型、发布订阅模式(常用)

消息队列——提高写的性能,削峰填谷,失败隔离和自我修复,解耦

缓存——提高读的性能

 

负载均衡架构

请求如何分发

Http 重定向负载均衡:性能(二次 http)、安全(暴露 ip)

DNS 负载均衡:大型网站使用(淘宝),dns 解析出来的负载均衡服务器的 ip

反向代理负载均衡:小型公司使用,最多几十台服务器,因为反向代理服务器使用 http 协议,先拿到 http 请求、响应包才能继续下一步,包可能比较大(可能几 M),如果并发高,请求会堆积;7 层协议而

IP 负载均衡:4 层协议,不需要解析 http 包,只修改 tcp 包中的 ip;性能不会成为瓶颈,响应出口带宽成为瓶颈

数据链路程负载均衡:大型网站使用,IP 负载均衡改版(修改 mac 地址,服务器匹配 mac 地址),响应直接返回给客户端,不经过负载均衡服务器

 

Session 复制:仅适应少量服务器,为什么用集群,就是为了提高并发处理能力,并发量多的话服务器压力大,会压垮服务器

Session 绑定:相同的请求访问同一台服务器,hash 绑定,单点故障

利用 cookie 记录 session:每次请求带上 cookie,增加了网络开销;客户端可能清理 cookie

Session 服务器:redis

 

数据库集群

MySql 复制:从数据库不要同步 alert,不然表会锁住;从服务器不要写数据

MySql 一主多从复制:分摊负载、专机专用、便于冷备、高可用

MySql 主主复制:不能同时向两个服务器写数据,导致数据冲突

MySql 主主失效回复

Mysql 复制注意事项:

1、主主复制的两个数据库不能并发写入

2、复制只是增加了数据的读取并发处理能力,没有增加写并发能力和存储能力

3、更新表结构会导致巨大的同步延迟

4、主主、主从并没有解决存储能力


用户头像

梦子说

关注

还未添加个人签名 2018.12.01 加入

还未添加个人简介

评论

发布
暂无评论
总结-05-缓存