因此 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。
还有其他人遇到过这个问题吗?
最佳答案
关于php - Memcached set() 失败 : WRITE FAILURE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2279337/