数码|Web前端开发程序员的自我修养:常见缓存种类有什么?
很多初学前端开发的程序员都不是很清楚缓存这个概念 , 今天千锋广州前端小编就详细给大家介绍一下 , 下面一起来看看吧!
缓存可以让原本打开很慢的页面 , 变得能“秒开” 。 在我们平时访问的APP、网站几乎都有涉及到缓存的运用 , 因此缓存也成为每一个前端人员必须要掌握的技术 。 在接下来小编就给大家介绍一下常见的几种缓存 。
本文插图
想要掌握缓存 , 你需要了解两个重要的运用方式:预读取和延迟写 。
预读取就是预先读取将要载入的数据 , 也可以称作「缓存预热」 。 就是在系统对外提供服务之前 , 先将硬盘中的一部分数据加载到内存中 , 然后再对外提供服务 。
延迟写是指通过缓存机制来加速“写”的过程 。 是预先将需要写入到磁盘或者数据库的数据 , 先暂时写入到内存 , 然后就返回成功 。 再定时将内存中的数据批量写入到磁盘 。
简单来说 , 预读取是在数据出口加了一道前置的缓冲区 。 而延迟写就是在数据入口后面加了一道后置的缓冲区 。
接下来就是Web前端入门课程的重头戏——常见的缓存种类 。
浏览器缓存
这是离用户最近的可以作为缓存的地方 , 而且借助的是用户的“资源”(缓存的数据在用户的终端设备上) , 性价比可谓最好 , 让用户帮你分担压力 。 浏览器缓存是在于用户侧的缓存点 , 所以我们对其的掌控力就差很多 , 在没有发起新请求的情况下 , 你无法主动去更新数据 。
CDN缓存
提供CDN服务的服务商将数据分发到这些遍布各地服务器上作为缓存 , 让用户访问就近的服务器上的缓存数据 , 就可以起到压力分摊和加速效果 。 这在ToC类型的系统上运用 , 效果格外显著 。 不过由于节点众多 , 更新缓存数据比较缓慢 , 一般至少是分钟级别 。 所以一般仅适用于不经常变动的静态数据
网关(代理)缓存
常用的网关(代理)缓存有Varnish、Squid、Ngnix 。 一般情况下 , 简单的缓存运用场景用nginx即可 , 因为大部分时候我们会用它来做负载均衡 , 能少引入一个技术就少一份复杂度 。 如果是大量的小文件可以使用Varnish , 而Squid则相对大而全 , 运用成本也更高一些
进程内缓存
将一些数据缓存在站点 , 或者服务的进程内 , 这就是进程内缓存 。 进程内缓存的实现载体 , 最简单的 , 可以是一个带锁的Map 。 也可以使用第三方库 , 例如leveldb 。 进程内缓存的好处是 , 数据读取不再需要访问后端 , 例如数据库 。
进程外缓存
即我们常用的各种分布式缓存 , redis、memcached之类 。 进程外缓存相比进程内缓存会慢些 , 但存储空间可以横向扩展 , 不受限制 。
数据库缓存
数据库缓存是数据库的内部机制 , 一般都会给出设置缓存空间大小的配置来让你进行干预 。 数据库缓存也叫内存杀手 , 基本上你给多少内存就能吃多少 。
【数码|Web前端开发程序员的自我修养:常见缓存种类有什么?】
推荐阅读
- 人生聊数码|小而美,快而准,6秒开瓶,火候红酒电动开瓶器体验
- 科技零接触|出差旅游必备的哪些数码设备,你一般都带哪些出门?
- 驱动中国|数码圈的贵族品牌,低调的实力派,PITAKA三款明星产品初体验
- 设计|它是Web设计的基础,但是很多人都忽略了
- 找靓机玩数码|华为Mate40采用双处理器:没有麒麟芯片,你还买吗?
- 平板|颜值与实力并行,网上飘数码配件这款平板支架也能玩出高逼格!
- 云瑞将军的数码港|办公室白领必备——图拉斯颈椎按摩仪U91轻体验
- 网上飘数码旗舰店|颜值与实力并行,网上飘数码配件这款平板支架也能玩出高逼格!
- 老实人数码|华为Mate40Pro将在9月正式发布,双扬声器+五种颜色,价格更感人
- Techweb|肯德基宣布与 3D 生物打印公司合作 尝试制作实验室生产更环保鸡块