645620
求更详细的解释
我知道客户端缓存,通常可以通过ETAG和Last-Modified来标识该内容是否发生了变化,那么服务端缓存呢
求更详细的解释
我知道客户端缓存,通常可以通过ETAG和Last-Modified来标识该内容是否发生了变化,那么服务端缓存呢
楼主误解缓存了,后端服务比较复杂,可能牵涉到各种IO操作(磁盘甚至网络),如果每个客户端每次请求都需要跑一边那服务器稍微来点量要么crash要么hang住了。也不用很多,比如,1秒内100次请求。。。最直观的方法就是加上缓存,第一次请求来时只需走一遍各种IO,最后把数据缓存到内存,后面的所有请求就都可以从内存拿数据了,响应至少可以快一个以上的数量级。就算你的缓存10秒钟失效,那也可以带来很高的性能了。CPU的L1/L2缓存和CDN的静态数据缓存,与此同理。 至于为什么浏览器的缓存会使用更新时间和文件哈希来标志,那是为了尽可能久地延长缓存文件的有效期,直到文件发生改变。这也是浏览器为什么不像后端那样设置一个固定的超时时间,还有就是浏览器缓存的文件也就自己用,而后端缓存的数据则是响应千千万万的客户端请求的。
来自✨ Node.js开源项目精选✨
总结楼上2点 1、缓存方案的必要性 2楼所讲的 2、缓存过期方案
3楼正解,改变的时候去更新缓存就好了。
有机制保证缓存能更新就行了,即便有延迟 这个跟业务容忍度也有关系
先了解下 内存的存储速度 和 硬盘的读写速度,与 web 的性能瓶颈。