使用PHP的高性能站点中的Memcache
我一直在努力优化一个Web服务,该服务需要返回速度稍快(不到1秒),并且需要保持较高的请求负载(大于1000/秒)。我们使用memcached作为“在内存中”存储对象的一种方式。我们似乎从memcache中获得了大量超时错误 [Thu Jul 23 22:59:42 2009][error][client 123.456.789.10]PHP警告:Memcache::connect()[Memcache.connect]:无法连接到127.0.0.1:11211,连接超时(110) 那么,继续回答问题使用PHP的高性能站点中的Memcache,php,memcached,Php,Memcached,我一直在努力优化一个Web服务,该服务需要返回速度稍快(不到1秒),并且需要保持较高的请求负载(大于1000/秒)。我们使用memcached作为“在内存中”存储对象的一种方式。我们似乎从memcache中获得了大量超时错误 [Thu Jul 23 22:59:42 2009][error][client 123.456.789.10]PHP警告:Memcache::connect()[Memcache.connect]:无法连接到127.0.0.1:11211,连接超时(110) 那么,继续回
谢谢你的帮助,我对memcache有点陌生,我想我缺少了一些东西 要回答您的第一点:
- memcached的强大之处在于它允许创建一个缓存服务器集群:它并不意味着要在一台服务器上使用(如果是这样,您可以这样使用它)
- 理论上,你有很多服务器,每台服务器都有一些你不需要的空闲RAM
- 要使用此RAM,请在这些服务器上安装memcached,并将其配置为使用未使用的RAM量
- 如果一台机器停机,它会自动停止使用,并将负载平衡数据放在其他机器上
- memcached的缺点(对某些人来说)是基于网络的(即使你只在一台机器上使用它);这意味着比“仅本地”慢一点
- APC只在一台机器上工作:最好(用作缓存机制)只在一台服务器上存储您需要的数据,或者如果您只有一台服务器;并且没有更多的数据可以存储在RAM中。
- 主要缺点是它绝对不可伸缩:它被认为是一台机器;如果您有10个,那么您必须拥有相同的数据10次,每台机器上一次
- 据说APC获取数据的速度大约快5倍,因为它是本地的,并且不基于网络
如果你需要更多关于memcached的(具体的)帮助,但在这里没有得到太多帮助,这里有一个邮件列表,它有时非常活跃;也许尝试一下会有用。如果您只有一台服务器,您可以将memcached配置为使用unix套接字而不是tcp。它应该加快一点(或更多)。