Caching 如果存在清漆,为什么要使用memcached

Caching 如果存在清漆,为什么要使用memcached,caching,nginx,memcached,varnish,Caching,Nginx,Memcached,Varnish,我正在尝试构建一个webapp(包含大量动态内容),我需要一些缓存系统来提高性能。目前,我正在使用nginx和负载平衡器 我将varnish视为http代理,用于直接从缓存响应服务,并避免向nginx发送请求 稍后我将介绍memcached,它是RAM中一个很好的键值对缓存 现在,如果我可以用varnish缓存所有请求,并为频繁更改的动态内容设置一点TTL,那么为什么我需要一个memcached这样的系统呢 我应该只对静态内容使用varnish,并使用memcached管理动态内容 对所有请求使

我正在尝试构建一个webapp(包含大量动态内容),我需要一些缓存系统来提高性能。目前,我正在使用nginx和负载平衡器

我将varnish视为http代理,用于直接从缓存响应服务,并避免向nginx发送请求

稍后我将介绍memcached,它是RAM中一个很好的键值对缓存

现在,如果我可以用varnish缓存所有请求,并为频繁更改的动态内容设置一点TTL,那么为什么我需要一个memcached这样的系统呢

我应该只对静态内容使用varnish,并使用memcached管理动态内容

对所有请求使用清漆会是一种不好的做法,并且清除系统(对于动态内容)会是一项繁重的任务吗


我有点困惑…谢谢Varnish+Memcached是一个完美的组合

通常,web应用程序有一个来宾并登录到以下区域:

Varnish通过缓存来宾区域帮助完全绕过PHP引擎执行,允许您在那里设置高TTL。 示例:向来宾用户显示的文章内容

Memcached有助于减轻当Varnish cache不能满足请求时PHP引擎的负担,即对于登录的用户。
存储在那里的常见内容包括繁重的SQL查询结果和其他临时数据,这些数据在每次PHP运行时都需要花费大量的时间重新生成。

我使用的是java,但我认为您所说的对所有语言都是等效的。所以我不应该在Varnish中缓存“userLoggedContent”,而应该只缓存不依赖于登录用户的内容。所有其他依赖于用户的内容都可以通过MemCached进行缓存。我是对的?基本上是的。您应该明白,这是默认的清漆行为。它不会缓存cookie(已登录)附带的请求。当然,您可能希望使用Varnish尽可能多地缓存页面,甚至是登录用户的部分页面,例如边栏输出(需要启用ESI)。