需要一个php缓存推荐

时间:2011-02-09 06:04:30

标签: php caching

我需要帮助为客户端站点找到合适的缓存解决方案。当前网站是centoOS,php,mysql,apache使用smarty模板(我知道它们很糟糕,但它是由其他人建造的)。当前的模型/方法使用相当好的OO结构,但是对于一些简单的页面函数有很多查询。我正在寻找尝试找到某种缓存解决方案,但是当谈到这个时我就是一个菜鸟,并且不知道哪些适合当前的网站设置。

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

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

我调查了一些xcache,但我找不到可以在特定页面上或基于其他变量设置特定缓存时间的方法?!?也许我错过了一些东西,但有没有人对缓存方案提出建议,以满足这些要求?

Mucho感谢您提供任何意见......

2 个答案:

答案 0 :(得分:2)

可以使用许多方法完成缓存。 Memcached让人想起适合你的任务。但如果网站超忙,你可能会用完ram。

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

如果必须调用sql server,则可能需要使用内存(堆)表来存储大部分预先计算的数据。这种技术不比memcached更有效,可能不那么有效,但可以节省你安装memcached。

DC

答案 1 :(得分:1)

Zend_Cache可以做你想要的,还有更多。它支持许多后端,包括xcache和memcache,并允许您缓存数据,整页,部分页面,以及您可以想象的任何内容:p。

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