0

我最近为一个流量很大的 PHP 站点设置了 memcached。在我们使用 APC 之前,但这缺乏拥有唯一缓存系统的可能性(使一台服务器上的一个键失效不会通过其他服务器失效)。

当 memcached 与 http 服务器在同一台机器上或在单独的服务器上时,我注意到一个很大的不同。

同一服务器上的 http+memcached -> 交付页面的平均时间为 0.06

diff 服务器上的 http 和 memcache(但在 NAT 下)-> 0.15 - 0.20 以传递页面

所以这是一个巨大的差异,我想知道将缓存系统与 http 放在同一台机器上是否会更好。额外的复杂性是网站由几个 http 服务器(通过负载平衡器)提供服务。所以我实际上需要一个带有复制的缓存系统,每个http服务器都有一个缓存“副本”并将更改仅写入“主”(或其他类似的方法)。

有几个这样的系统(couchbase、redis、aso)。我认为 couchbase 对此并不好,因为它不允许连接到本地缓存服务器,而是连接到“门”。Redis可能工作,我还在检查其他人。

主要是:有人尝试过这种方法来加速网站吗?通过在每台机器上都有一个缓存“副本”(与其他机器保持同步)?

4

1 回答 1

5

您可以使用 GigaSpaces XAP 解决方案,它是一个分布式内存数据网格,但也与 jetty 集成,允许您部署 Web 应用程序并从单个管理系统进行管理。中央分布式数据网格(可以用作简单缓存)可以在每个 Web 容器上都有一个本地缓存,它与主缓存保持同步,您不必为此使用码头集成,您仍然可以使用您自己的 Web 容器,只需通过代码使用嵌入式本地缓存创建分布式缓存的代理。或者,您也可以在 Web 容器之间拥有完全复制的拓扑,而无需主分布式缓存,并且每个 Web 容器将包含整个缓存的完整副本,该副本将与 Web 容器的其他实例同步。

您可以阅读更多内容:

http://wiki.gigaspaces.com/wiki/display/SBP/Web+Service+PU http://wiki.gigaspaces.com/wiki/display/XAP9/Web+Jetty+Processing+Unit+Container http:// wiki.gigaspaces.com/wiki/display/XAP9/Client+Side+Caching

免责声明:我是为 GigaSpaces 工作的开发人员。

于 2012-09-27T12:37:13.067 回答