Php Memcached set()失败:写入失败

Php Memcached set()失败:写入失败,php,memcached,Php,Memcached,因此Memcached无法写入某些键,getResultMessage()表示写入失败 我正在设置中使用此选项: $this->mmcache = new Memcached(); $this->mmcache->addServer('localhost',11211, 100); $this->mmcache->setOption(Memcached::OPT_BINARY_PROTOCOL, true); $this->mmcache->setOpt

因此Memcached无法写入某些键,getResultMessage()表示
写入失败

我正在设置中使用此选项:

$this->mmcache = new Memcached();
$this->mmcache->addServer('localhost',11211, 100);
$this->mmcache->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
$this->mmcache->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_IGBINARY);
$this->mmcache->setOption(Memcached::OPT_COMPRESSION, false);
有些钥匙每次都能用,有些钥匙每次都会失灵。我甚至尝试了base64编码键,但无论如何都失败了,即使是像

for($i=1;$i<100;$i++) {
  $this->mmcache->set('testkey'.$i,$i*100,600);
}
for($i=1;$immcache->set('testkey'.$i,$i*100600);
}
每次返回
写入失败

禁用二进制协议只会将错误更改为
主机名查找失败
,但大约50%的密钥仍然有效,我无法确定哪些密钥有效,哪些密钥无效

对不起,我以前问错问题了


原始问题:v1.4.4中的Memcache返回NULL
我正在从php中存储和读取memcache中的大量数据。我正在使用运行在本地主机上的常规连接到memcache服务器。我正在使用memcache 1.4.4

但在一次脚本运行中,我从memcache读取了50-60个密钥,其中超过50%返回为
null
。根据php.net,当密钥不存在或过期时,
memcache::get()
应该返回false。那么为什么它会返回“null”

即使是我刚刚写入memcache的密钥也会发生这种情况。我将某个密钥缓存24小时,一分钟后我会得到“null”。memcache甚至还没有满50%,所以没有理由清除密钥,即使它们是,它们也应该返回为false而不是null


还有其他人遇到过这个问题吗?

听起来好像你在Memcached上达到了内存限制。你在写什么东西?它们有多大

若您的Memcached服务器已满或几乎已满,我甚至可能会期望发生这种情况

另一方面,再次检查你是否安装了速率限制防火墙。也许它会看到你用力敲打你的Memcached盒子,然后发疯


最后,确保在完成Memcached连接后关闭它。如果打开太多连接,事情就会变得糟糕。

听起来就像你在Memcached上达到了内存限制。你在写什么东西?它们有多大

若您的Memcached服务器已满或几乎已满,我甚至可能会期望发生这种情况

另一方面,再次检查你是否安装了速率限制防火墙。也许它会看到你用力敲打你的Memcached盒子,然后发疯

最后,请确保在完成Memcached连接后关闭它。如果打开的Memcached连接太多,事情会变得很糟糕。

我今天遇到过

事实证明,您需要使用127.0.0.1而不是localhost

真烦人。

我今天吃了一顿

事实证明,您需要使用127.0.0.1而不是localhost


真烦人。

为了安全起见:您已经双重/三次检查了您添加的数据()不是简单的空值吗?是的,当然,调试每个步骤的所有细节,一些键返回值,一些空值。memcache难道没有错误日志吗?它应该包含关于出错原因的更详细信息。嗨!你知道为什么会发生吗?这听起来很像是出于安全考虑:你已经双重/三次检查了数据是否正确dd()不仅仅是null?是的,绝对是,调试每个步骤的所有细节,一些键返回值,一些null。memcache没有错误日志吗?它应该包含关于出错原因的更详细的信息。嗨!你知道为什么会发生吗?这听起来对我很有用。我的php Memcached类用于“localhost”。在新版本中有回归吗?这对我来说很有效。我的php Memcached类过去与“localhost”一起工作。在新版本中有回归吗?