内容简介:如果有一个GET请求,每秒钟有10k请求,但是10s钟才需要刷新一次,你会让内容服务器不停地处理这类请求吗? 不会,这10秒内的100k次请求带来的计算都是毫无意义的,浪费了CPU资源,并且还可能为内容服务器之后的数据库 带来了不必要的压力。所以我们需要引入一个概念:缓存。我们在每次处理请求之前,检查一下内存中是否已经产生了结果,如果是,那么直接返回结果,否则,计算,返回结果并且 同时将结果放入内存中以便重复利用。这显然已经不是和计算机操作系统级别的缓存是同一个概念了,web开发中的缓存 通常是指对静态资
缓存
如果有一个GET请求,每秒钟有10k请求,但是10s钟才需要刷新一次,你会让内容服务器不停地处理这类请求吗? 不会,这10秒内的100k次请求带来的计算都是毫无意义的,浪费了CPU资源,并且还可能为内容服务器之后的数据库 带来了不必要的压力。所以我们需要引入一个概念:缓存。
我们在每次处理请求之前,检查一下内存中是否已经产生了结果,如果是,那么直接返回结果,否则,计算,返回结果并且 同时将结果放入内存中以便重复利用。这显然已经不是和计算机操作系统级别的缓存是同一个概念了,web开发中的缓存 通常是指对静态资源,请求响应等的存储以便节省CPU资源。
在实际生产中,我们一般使用 Redis 作为缓存容器,Redis是一个高性能的K-V数据库,我们把缓存定义好一个key,内容则 放在value中,通常我们还会为key设置过期时间,这样再通过上面的手段便可以大量的节省内容服务器的无用计算。在Redis 火爆之前,一般都会使用memcached,不过我没有用过。
CDN
如果你的客户,或者说请求来源于全球,但是你的网站服务器只在中国有,那么来自美国的用户可能会感觉请求非常的慢, 因为网络质量的问题,一个网络请求可能要跨越太平洋来到中国,带上服务器给出的响应回去。那么有没有什么好办法可以让 全球的用户都得到最快的响应呢?有,把你的服务器部署到全球各个地方,然后通过DNS做负载均衡,解析到最近的服务器, 这样全球的用户的请求都会打到离他最近的地方。这种技术就叫CDN。
一般情况下CDN服务器都会缓存住源服务器的响应,并且定时刷新。但是CDN仅限于可以缓存的内容例如变化不频繁的网页, 如果是频繁变化,或者每个请求得到的响应都不一样,则不适用,例如面向APP或者前端的API接口响应。
参考:
以上所述就是小编给大家介绍的《Web开发系列(七):缓存,CDN》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 安卓中高级开发面试知识点之——缓存
- 针对web开发者的浏览器缓存指南(译)
- MLSQL 1.3.0开发版中最新三个MPIPs--调度,资源,缓存
- normandie出错重试与缓存机制对交互的影响,开发者注意
- Java Web现代化开发:Spring Boot + Mybatis + Redis二级缓存
- Java Web现代化开发:Spring Boot + Mybatis + Redis二级缓存
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。