使用PHP的memcache

时间:2010-03-06 17:02:13

标签: php memcached

我想开始使用PHP的memcache(在Ubuntu 9.10上)。网上有很多信息,似乎显示了如何做到这一点。但令人惊讶的是,没有一篇文章(我到目前为止已经看过)明确说明你是否需要在尝试使用它之前运行内存缓存进程,或者是否只是通过PHP客户端库调用新的MemCache(),就会产生一个进程(如果尚未运行)。

从我到目前为止所阅读的各种文档来看,这些是我认为有意义的步骤:

  1. 在您的计算机上安装内存缓存(有几个文档显示如何执行此操作)
  2. 修改您的php.ini文件,并将与memcache相关的consts / flags设置为对您的环境有意义的值
  3. 在ini.d中创建一个init脚本以启动memcache作为守护程序
  4. 重新启动Apache守护程序
  5. 第3号是我需要确认的部分,因为到目前为止我所看到的文档都没有提到memcache过程的生命周期。

    如果这是正确的步骤,有人可以在此确认吗? 如果我错过了一步,请告诉我。

    顺便说一下,由于我对Linux比较陌生,如果有人能发布一个运行memcache守护程序进程所需的init脚本示例,我将不胜感激(假设我上面列出的步骤是正确的) )

2 个答案:

答案 0 :(得分:11)

一开始,memcached和Apache + PHP是两个完全不相关的东西。唯一的事情是PHP连接到memcached守护进程。

所以,是的,memcached (请注意最后的“d)必须在尝试使用它之前启动它:当你没有运行时尝试连接到memcached服务器,你将无法连接 - 它不会产生新的守护进程也不会产生任何东西。

使用简单的比较:您的Apache服务器未启动,并且您尝试使用浏览器访问它,您将收到“无法连接”错误;与尝试连接到memcached的PHP完全一样:它无法实现。


现在,对于安装过程,这里有几个注释,对于你说的看起来不太好的部分:

  • 在您的计算机上安装memcached
    • 如果你安装了使用发行机制,它应该在/etc/init.d /
    • 中创建了脚本
    • 它应该已启动守护程序
    • 提醒一下,要使用Ubuntu安装内容,您应该使用apt-get install memcachedaptitude install memcached
  • 在修改php.ini之前,必须安装PHP的memcache扩展名 - 因此PHP具有连接到memcached的功能。
    • 可以使用您的发行版的php5-memcache
    • 来完成
    • 或者使用pecl install memcache命令,它将从pecl.php.net下载源并编译它们 - 这意味着您将需要编译软件所需的一切。


修改:此处比在评论中更容易回答

我说安装memcached应​​该没关系 - 在Ubuntu上,似乎有一个陷阱:

使用此:

ps -Alf | grep memcached

我没有看到任何正在运行的守护进程。

当我尝试启动守护进程时,我得到以下内容:

$ sudo /etc/init.d/memcached start
Starting memcached: memcached disabled in /etc/default/memcached.


因此,在Ubuntu上,您必须编辑/etc/default/memcached并进行更改;而不是这个:

# Set this to yes to enable memcached.
ENABLE_MEMCACHED=no

应该包含:

# Set this to yes to enable memcached.
ENABLE_MEMCACHED=yes

然后,应该可以启动memcached:

$ sudo /etc/init.d/memcached start
Starting memcached: memcached.
test@tests: ~/temp
$ ps -Alf | grep mem
4 S nobody    3813     1  0  80   0 - 30025 ep_pol 00:17 pts/4    00:00:00 /usr/bin/memcached -m 64 -p 11211 -u nobody -l 127.0.0.1
0 R test      3819  2690  0  80   0 -  1834 -      00:17 pts/4    00:00:00 grep --color=auto mem


注意:现在启用了memcached,每次重启时都应该自动启动它。

答案 1 :(得分:0)

sudo apt-get install memcached
If you do not have a compiler on your server, you can download build-essential in order to install memcache: 
sudo pecl install memcache
Finally use PECL (PHP Extension Community Library) to install memcache
sudo pecl install memcache
Once you have completed the installation of memcache with PECL on the VPS, add memcached to memcache.ini