缓存和缓存之间的区别是什么? http缓存“反向代理”

时间:2016-03-13 13:08:35

标签: php caching reverse-proxy

我很难理解普通缓存“内存,文件,数据库等......”与http缓存“反向代理”之间的区别。

示例

假设我有一个页面分为3个部分。

  • 游戏
  • 应用

当我从数据库中检索这些部分时,我将每个部分缓存在它自己的密钥和&当一个新数据输入到任何这些部分时,我刷新缓存并重新创建它,包括新数据,所以现在每个部分只会在添加了新内容时更新。

另一方面,http缓存有一些调用ESI,你可以包含与主页面具有不同缓存寿命的页面部分,这是完美的但是

为什么我需要使用它? 或者第一种方法的优势是什么?

修改

  
      
  • 这比我追求的更简洁,但是,为什么你会在下面使用/继续使用反向代理呢?
  •   
     

https://laracasts.com/series/russian-doll-caching-in-laravel   https://www.reddit.com/r/laravel/comments/3b16wr/caching_final_html_from_view/   https://github.com/laracasts/matryoshka

1 个答案:

答案 0 :(得分:1)

反向代理缓存有一些好处:

  • 代理服务请求永远不会访问您的网络服务器。它通常是 更便宜/更容易扩展您的代理服务器(例如通过使用 像Akamai这样的商业供应商而不是扩展你的 Web服务器(一个或多个)。
  • 这意味着您可以在流量高峰和拒绝的情况下幸存下来 服务攻击的压力小得多。
  • 这也意味着你可以服务 与原始网络服务器不相近的流量要快得多 - 如果 您的网站服务于全球受众,延迟可能会产生很大影响 你的感知响应时间。
  • 您也可以将您的网络服务器下线,例如升级,不影响最终用户。

反向代理缓存的缺点:

  • 它是一个额外的架构层,它带来了复杂性,维护,管理等。
  • 它可能还需要额外的成本(大多数站点具有用于反向代理服务器的单独基础结构,或者使用商业CDN提供商)。
  • 您的解决方案设计需要管理更多层之间的缓存失效 - 这很容易变得复杂且容易出错。
  • 反过来,这意味着调试和测试解决方案可能非常困难。如果QA团队报告的页面不正确,您需要能够找到项目的来源 - 反向代理,应用程序缓存,数据库?