So Memcached fails to write certain keys, getResultMessage() says WRITE FAILURE
I'm using this in setup:
$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);
Some keys work every time, some fail everytime. I even tried base64 encoding the keys but they fail anyway, even simple function like
for($i=1;$i<100;$i++) {
$this->mmcache->set('testkey'.$i,$i*100,600);
}
returns WRITE FAILURE
every time.
Disabling the binary protocol just changes the error to HOSTNAME LOOKUP FAILURE
but like 50% of keys still work and I just can't figure out which will and which won't work.
Sorry I was asking wrong question before.
original question: Memcache in v1.4.4 returning NULL
I'm storing and reading large quantities of data in memcache from php. I'm using regular connect to memcache server which runs on localhost. I'm using Memcache 1.4.4
But from 50-60 keys that I'm reading from memcache in one script run, more than 50% come back as null
. According to php.net, Memcache::get()
should return false when key doesn't exist or expired. So why would it return "null" ?
This happens even for keys that I just wrote to memcache. I cache something for 24 hours and in a minute I'm getting "null" instead. Memcache is not even 50% full so there's no reason for keys to be purged and even if they were, they should come back as false and not null.
Has anybody else encountered this problem ?