【问题标题】:Need a php caching recommendation需要一个php缓存推荐
【发布时间】:2011-02-09 06:04:29
【问题描述】:

我需要帮助为客户站点找到合适的缓存解决方案。当前站点是使用 smarty 模板的 centoOS、php、mysql、apache(我知道它们很烂,但它是由其他人构建的)。当前的模型/方法使用相当好的 OO 结构,但是对于一些简单的页面功能,有很多查询可以完成。我正在寻找尝试找到某种缓存解决方案,但在这方面我是个菜鸟,不知道有什么适合当前站点设置的可用。

这是一个拍卖类型的网站,一次在一个页面上显示 10 个拍卖 - 每个拍卖的时间和当前出价通过每 1 秒返回 json 的 ajax 调用更新(它是一个像 beezid. com 所以每秒更新一次是必要的)。如您所见,如果站点获得任何类型的流量,同时请求的数量可能会很大。显然,这个数据每秒都在变化,因为返回的 json 数据具有拍卖剩余的更新时间,并且可能更新了每次拍卖的出价金额和出价用户。

我想要的是能够在给定的时间内或基于其他更改的变量缓存某些页面。例如,内存缓存显示 10 个拍卖的页面,并且仅在其中一个拍卖结束时更新该缓存副本。甚至是上面每秒返回 json 字符串数据的脚本。如果我能够在内存中缓存对该页面的第一个请求,则从内存中提供以下请求,然后在 1 秒后再次缓存它,这可能会大大减少服务器负载。但我不知道这是否可能,或者这样做的开销是否超过了任何请求负载节省。

我查看了一些 xcache,但找不到可以在特定页面上或基于其他变量设置特定缓存时间的方法?!?也许我错过了一些东西,但是有没有人推荐适合这些要求的缓存方案?

非常感谢您提供的任何意见...

【问题讨论】:

  • Xcache 是一个操作码缓存。 Opcode 是 PHP 解释器对您的代码的第一次传递的输出。操作码是实际在解释器上运行的代码。操作码缓存不会帮助您缓存代码的结果,只会缓存您的代码本身。
  • Xcache 也可以存储可变数据,使用XCacheApi,它不仅仅是一个操作码缓存。
  • @Dan - 我猜我对操作码缓存的作用感到困惑 - 这仍然可能有助于加快处理时间。在查看了 xcacheapi (@wimvds) 之后,它看起来很有趣,可能是一个解决方案,也许我会安装并看看它是如何工作的。感谢您的帮助!

标签: php caching


【解决方案1】:

可以使用多种方法进行缓存。 Memcached 突然想到适合您的任务。但如果网站非常繁忙,您可能会用完 ram。

当我进行缓存时,我经常使用简单的文件缓存,虽然它确实涉及至少一个 stat 调用来确定缓存内容的新鲜度,但它仍然比调用 sql server 更快且略胜一筹。

如果您必须调用 sql 服务器,那么使用内存(堆)表来存储大量预先计算的数据可能会有所帮助。这种技术并不比 memcached 更有效,可能效率更低,但可以节省您安装 memcached 的时间。

直流

【讨论】:

  • 我会查看内存表。 memcached 是熊安装吗?顺便说一句,服务器有 4 gigs 的内存 - 现在它只使用了大约 250MB 的内存,所以我认为内存不是问题。
  • memcached 据我了解相当简单。只要您可以访问机器。
【解决方案2】:

Zend_Cache 可以为所欲为,甚至更多。它支持很多后端,包括 xcache 和 memcache,并允许您缓存数据、完整页面、部分页面,以及您可以想象的任何内容:p。

如果您想知道:您可以单独使用 Zend_Cache 组件,您不必为您的应用程序使用完整的 Zend 框架。

【讨论】:

  • 感谢您的信息。我会更深入地看一下 zend_cache,我的印象是需要包含整个框架。
猜你喜欢
  • 2014-12-24
  • 2012-03-19
  • 2014-12-17
  • 2016-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多