memcache(3) 1.2.0 released...

Andrei Nigmatulin anight at monamour.ru
Thu Jan 13 02:03:54 PST 2005


В Срд, 12.01.2005, в 22:15, John McCaskey пишет:
> On Wed, 2005-01-12 at 22:03 +0300, Antony Dovgal wrote:
> > On Wed, 12 Jan 2005 11:02:01 -0800
> > John McCaskey <johnm at klir.com> wrote:
> >  
> > > If the get() command however returns a FALSE for either my stored
> > > FALSE value or for a miss, then I will always have to assume its a
> > > miss and hit the slow storage everytime I retrieve a FALSE.  Am I
> > > missing something here?  I can't see it if so.
> > 
> > Yup, you're missing "===" operator.
> > empty string == false, but empty string !== false.
> > 
> > http://www.php.net/manual/en/language.operators.comparison.php
> > 
> 
> Sure, but an empty string is not the same as a FALSE if I am storing
> both and considering them distinct.  I know about ===.  But I want to
> get exactly what I store back from memcached, if I store an '' or a
> FALSE then I should get exactly a '' or a FALSE in return and when I
> test with === it should match up.

As i understand, memcached only stores and retrives strings and does not
handle anything else, for example boolean. That's because internally,
memcached stores raw bytes and a length, but does not store a type of
data.
The only Right Way i see here is to store TRUE and FALSE as "1" and "0"
strings.

> 
> With returning a single value and no error code indication this is
> simply not possible as whatever the sentinel that indicates a miss is
> can now not be stored and retrieved reliably.  This is clearly a rare
> situation, but I think it's important to support.
-- 
Andrei Nigmatulin
GPG PUB KEY 6449830D



More information about the memcached mailing list