如何解决memcache set方法总是失败的问题?

时间:2010-03-26 10:27:28

标签: php xampp memcached

我在Windows 7上安装了XAMPP 1.7.3.PHP版本是5.3.1。我已成功从http://www.splinedancer.com/memcached-win32为win32安装了memcache。

我从http://downloads.php.net/pierre获得了PHP扩展php_memcache.dll。

重启apache并检查phpinfo()显示memcache没问题。

当我用下面的PHP页面测试它时。它总是在set方法中失败。

<?php
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211) or die ("Could not connect");

$version = $memcache->getVersion();
echo "Server's version: ".$version." \n";

$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;

$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)\n";

$get_result = $memcache->get('key');
echo "Data from the cache: \n"
?>

set方法总是返回false,因此不断输出

Server's version: Failed to save data at the server

我被困住了。我不知道哪个方法可以解决这个问题。 有人对可能的方向有任何想法吗?

感谢。

2 个答案:

答案 0 :(得分:0)

好的,首先要意识到我从未在Windows上使用过Memcache。然而,肯定phpinfo()的东西只是告诉你扩展是好的,而不是memcache本身......考虑到这一点,你确定它没有防火墙或其他东西吗?检查Windows防火墙是否被禁用将是我的第一个'猜测'......

答案 1 :(得分:0)

你有任何php错误或警告?
你可以试试var_dump($memcache->getStats())
也尝试只将一些字符串写入memcache而不是该对象
并检查是否可以使用telnet 127.0.0.1 11211来连接到该memcache 如果没有什么帮助尝试使用不同的服务器进行内存缓存... Windows防火墙是否阻止该端口?