如何在nginx + fastcgi上设置memcache

时间:2011-02-10 13:32:27

标签: drupal memcached nginx fastcgi

在ubuntu服务器上,我有一个drupal站点,它使用nginx + fastcgi作为webserver并使用xcache。我对配置很满意,但试图设置内存缓存希望提高网站的速度,但我不知道该怎么做。

安装memcached后,我将extension = memcache.so添加到/etc/php5/cgi/php.ini,我看到memcache进程正在运行。

但是,几个小时之后,我只看到更高的服务器负载(平均为5而不是通常的2),而不是更好的性能。所以我感谢您提示设置内存缓存。 (我知道我可以使用nginx作为apache的反向代理,并在apache上定义memcache,但我特别希望通过任何方式避免使用apache。)

2 个答案:

答案 0 :(得分:4)

Memcache只是键值存储。如果您的应用程序不知道如何使用它,那将毫无用处。

通过将extension = memcache.so添加到php.ini,您只能在php中启用memcache api。

之后,你必须教drupal,如何使用memcache,在其中存储一些数据。 我真的不知道,如何配置drupal来使用memcache,但我想,这很有可能,而且可能很容易变化。只需查看drupal的一些配置文件。

答案 1 :(得分:2)

这里游戏很晚,但如果你只在一台服务器上,那么memcached会让你慢下来。查看本地使用APC进行缓存(或者,在您的情况下,使用xcache的本地缓存)。我相信Drupal会有这些插件。我的猜测是你正在使用xcache进行操作码缓存,但不使用其内存缓存功能。

任何类型的缓存都不是银弹。就像Cyber​​Dem0n提到的那样,你的应用程序必须足够智能才能使用它:“缓存它,不要缓存它,从缓存中提取它等等。”

只有在处理多个服务器并需要共享缓存时,Memcached才是优秀的。如果您有一台服务器,那么当您可以将对象从内存中取出时(或者甚至是文件系统,在大多数情况下比网络速度快),您在浪费时间处理网络调用的开销。