将复制缓存系统复制到每个http服务器

时间:2012-09-24 11:02:36

标签: caching

我最近为一个拥有大量流量的PHP网站设置了memcached。在我们使用APC之前,但这样就没有可能拥有一个独特的缓存系统(使一个服务器上的一个密钥无效并不会通过其他服务器无效)。

我注意到memcached与http服务器在同一台机器上或在分离的服务器上有很大的不同。

  

http + memcached在同一台服务器上 - >平均花费0.06的时间来传递页面

     差异服务器上的http和memcache(但在NAT下) - >递送页面0.15 - 0.20

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

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

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

1 个答案:

答案 0 :(得分:5)

您可以使用分布在内存数据网格中的GigaSpaces XAP解决方案,但也可以与jetty集成,从而允许您部署Web应用程序并从单一管理系统进行管理。中央分布式数据网格(可以用作简单缓存)可以在每个Web容器上都有一个本地缓存,与主缓存保持同步,您不必使用jetty集成,它仍然可以使用您自己的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的开发人员。