php - Memcached set() 失败 : WRITE FAILURE

标签 php memcached

因此 Memcached 无法写入某些键,getResultMessage() 显示WRITE FAILURE
我在设置中使用它:

$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);

有些键每次都有效,有些键每次都失败。我什至尝试对 key 进行 Base64 编码,但它们无论如何都会失败,即使是像这样的简单功能

for($i=1;$i<100;$i++) {
  $this->mmcache->set('testkey'.$i,$i*100,600);
}

每次都会返回WRITE FAILURE

禁用二进制协议(protocol)只会将错误更改为HOSTNAME LOOKUP FAILURE,但大约 50% 的 key 仍然有效,我只是不知道哪些可以工作,哪些不能工作。

抱歉,我之前问错了问题。


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

但是,从我在一个脚本运行中从内存缓存读取的 50-60 个键中,超过 50% 返回为 null。根据 php.net,当 key 不存在或过期时,Memcache::get() 应该返回 false。那么为什么它会返回“null”?

即使对于我刚刚写入内存缓存的键也会发生这种情况。我将某些内容缓存了 24 小时,但一分钟后我就得到了“null”。 Memcache 甚至还没有满 50%,因此没有理由清除键,即使清除了,它们也应该返回 false 且不为 null。

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

最佳答案

我有the same problem今天。

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

真烦人。

关于php - Memcached set() 失败 : WRITE FAILURE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2279337/

相关文章:

python - 在 Django 中对分页 View 的第一页使用缓存

php - 处理来自第三方API的错误

php - Symfony 中的功能切换

database - Apache Ignite-Cassandra 集成,数据重复?

python - 如何安装 pylibmc(memcached 的 python 客户端)?

java - 在谷歌应用引擎中使用内存缓存

php - SQL 查询在通过 phpmyadmin 测试时工作正常但在 PHP PDO 中尝试相同的事情时失败

php - 将月拆分为周并使用 GROUP BY

php - 获取按天分组的支付现金金额

ruby-on-rails - 在Heroku Deploy上清除Memcached