网站首页 > 技术文章 正文
提到多级缓存,很多人都想到通过Guava本地缓存与Redis分布式缓存结果,但实际上缓存结果远不止这两层。在一些场景中,可以有很多层。
以一个购物网站为例,从前到后,可以涉及到5级缓存。
5级缓存结构简图
客户端缓存:离用户最近的缓存,例如用电脑浏览网站,浏览器中的cookie,手机微信APP中的表情包,都是存储在用户自身电脑与手机中的。
CDN缓存:内容分发网络,是全球范围内离用户近的地方部署的用于存储网页、图片、视频等静态资源的一些边缘节点。例如,一个西藏用户浏览淘宝,淘宝的服务器假如部署在上海,那么数据从上海传输到西藏,流量存在浪费用户体验也不好,这时就可以提前将商品的图片,视频等静态资源部署在成都,大大缩短了流量成本,缩短用户体验。
NGINX缓存:WEB服务器缓存,nginx除了做负载均衡外,还可以做一些上述客户端和CDN无法做到的缓存。像网络购物中风控系统会基于用户IP甄别是否为黄牛,那么就可以把这些IP地址放到nginx黑名单中,用于过滤。
本地缓存:是单台应用服务器维度的缓存,会占用服务器本身存储空间与算力。假设一个分布式系统有5台应用服务器,那么这5台服务器中的缓存内容是独立且相同的,彼此不相互影响。本地缓存更多的是用来频繁地读,而非写。
分布式缓存:一种专门做存储的系统(单台服务器或集群)如Redis。只要向其存储一份数据,那么接入该分布式缓存的所有应用服务器可以获取到相同的内容,保证了数据的一致性。举个例子,淘宝商品库存可以放到Redis中,用户在服务器A下了一单库存减少为99同步更新到Redis,其他用户在服务器B看到的库存也会变成99。
扩展问题:
- 如果要设计一个秒杀系统,你会从哪些方面考虑缓存?
- 除了上述缓存外,还会有其他层级的缓存吗?
- 上一篇: 优化你的Vue应用:解锁keep-alive组件缓存的潜力
- 下一篇: PHP中的九大缓存技术
猜你喜欢
- 2025-01-12 CDN+OpenResty 实现丝滑访问的登录态缓存站
- 2025-01-12 如何在Spring Boot中通过布隆过滤器防止缓存穿透问题?
- 2025-01-12 HTML5缓存机制浅析:移动端Web加载性能优化
- 2025-01-12 如何在 NGINX 中缓存内容
- 2025-01-12 如何解决服务器缓存过高
- 2025-01-12 白帽黑客贡献新的Web攻击方式,CDN缓存服务器成为数据泄露目标
- 2025-01-12 西部数据推出新款蓝盘机械硬盘:CMR技术,4TB 549元
- 2025-01-12 面试官:如何实现多级缓存?
- 2025-01-12 基于spring boot的注解缓存,自带轻量级缓存管理系统
- 2025-01-12 系统设计 | 缓存系统设计
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)