网站首页 > 技术文章 正文
提到多级缓存,很多人都想到通过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 系统设计 | 缓存系统设计
你 发表评论:
欢迎- 06-24发现一款开源宝藏级工作流低代码快速开发平台
- 06-24程序员危险了,这是一个 无代码平台+AI+code做项目的案例
- 06-24一款全新的工作流,低代码快速开发平台
- 06-24如何用好AI,改造自己的设计工作流?
- 06-24濮阳网站开发(濮阳网站建设)
- 06-24AI 如何重塑前端开发,我们该如何适应
- 06-24应届生靠这个Java简历模板拿下了5个offer
- 06-24服务端性能测试实战3-性能测试脚本开发
- 564℃Oracle分析函数之Lag和Lead()使用
- 562℃几个Oracle空值处理函数 oracle处理null值的函数
- 548℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 544℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 541℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 535℃【数据统计分析】详解Oracle分组函数之CUBE
- 526℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 517℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)