1

如何在 Windows XP 32 位中安装 memcached?

我可以成功安装 memcache 并且可以使用下面的代码

$m = new Memcache;
$m->connect('localhost',11211);

但我需要像这样使用 memcached,

$m = new Memcached();
$servers = array(
    array('localhost', 11211)
    );
    $m->addServers($servers);

现在上面的代码显示没有找到 Memcached 类。因为没有安装。那么如何在 Windows XP 32 位中安装 memcached

4

2 回答 2

2

我遇到了类似的问题,对于那些不想(或由于某种原因不能)运行虚拟机的人,我最终得到了在 Windows 上运行与在 linux 上运行不同的代码。

当我运行以下内容时:

$m = new Memcache;
print_r(get_class_methods($m));

我注意到它Memcache没有AddServers()方法,这是为了Memcached(请参阅Memcache 类上的php.net 文档与 Memcached 类上的 php.net 文档相比,并注意还有更多内容Memcached!)。

因此,对于 Windows(您需要使用的地方Memcache,没有Memcached可用的),解决方案是创建自己的短循环来添加多个服务器:

$m = new Memcache();
$servers = array(
    array('localhost', 11211),
    // ... other servers here
);
foreach ($servers as $s) $m->addServer($s[0], $s[1]);

如果您需要同时提供适用于 Windows 和 Linux 的两组代码,您始终可以将上述内容包含在其中if (PHP_OS == 'WINNT'),并将您的 Linux 代码放在后面的 else 语句中。所以,类似于:

$servers = array(
    array('localhost', 11211),
    // ... other servers here
);
if (PHP_OS == 'WINNT') {
    $m = new Memcache();
    foreach ($servers as $s) $m->addServer($s[0], $s[1]);
}
else {
    $m = new Memcached();
    $m->addServers($servers);
}
于 2013-10-22T02:13:11.203 回答
0

和你有同样的问题。

在阅读了http://shikii.net/blog/installing-memcached-for-php-5-3-on-windows-7/之后,我发现由于 libmemcached,Memcached 是为 linux 设计的。

仍在等待有关此问题的适当解决方案。

有没有人可以帮助我们?谢谢你。

*对不起,我的英语不好。

于 2012-11-30T08:07:33.857 回答