个人缓存 vs Memcache?

3

我有一个个人的缓存类,可以在这里看到(基于WordPress):
http://pastie.org/988427

最近我了解到memcache,它说要将所有东西都存入内存:
http://highscalability.com/blog/2010/5/17/7-lessons-learned-while-building-reddit-to-270-million-page.html

我的第一个想法是保持我的类与当前功能一致,并让它使用memcache——这样做有什么缺点吗?

我看到的主要区别是,memcache从页面到页面一直保留在服务器上,而我的缓存只用于1个页面加载。我看到可能出现的问题是,这是任何系统都会遇到的问题,因为它们是动态的,它们一直在变化。无论是搜索结果、可见产品等等。如果所有内容都被缓存,难道不会造成问题吗?

有没有办法解决这个问题?显然,如果某些内容每次都返回相同的结果,那么它就会被缓存,但这就是我按每页加载一次进行缓存的原因。我相信有一种处理方法,或者缓存时间通常设置在5分钟到1小时之间吗?


1
在大型、高流量的应用程序中,使用像您已经使用的缓存策略以及memcache这样的缓存技术并不罕见。在PHP变量中缓存请求期间的数据远比访问memcache更快。 - Frank Farmer
非常感谢您的评论 - 我非常困惑于什么是最好的选择。 - Kerry Jones
1个回答

1
你肯定需要一个良好的缓存策略来避免陈旧数据的问题。对于动态数据和使用memcached,您必须在某些数据更新时删除缓存条目。您不能仅依赖缓存条目超时。使用memcached,您可以为特定页面生成仅缓存动态内容的部分。如果您想缓存完整的HTML文档,我建议使用反向代理,如varnish(http://varnish-cache.org/)。

这里对我来说关键的是“在某些数据更新时,您必须删除缓存条目”。 - Kerry Jones

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接