Memcached PHP Sessions
Larry Leszczynski
larryl at emailplus.org
Fri Feb 2 18:36:00 UTC 2007
>> Is it also correct that, in the above case, memcached would purge the
>> oldest 1MB of data (which may not be expired), and leave newer items in
>> the cache even though they have already expired?
>
> No. Expired items are removed before non-expired items are cycled out of
> the LRU queue.
>
> However, there is some interaction between the slab allocator and the
> LRU logic that can alter that behavior somewhat -- basically there is a
> separate storage "bucket" for each range of sizes of object, and the
> expiration/LRU logic is only applied within a particular bucket. So, for
> example, you might see a large object get LRUed out to make room for a
> small object even though the small object has an expiration time in the
> past, simply because there's no room left in the large-object bucket.
> But you will only ever see that behavior when dealing with objects of
> different size classes, never for objects of the same size.
Great, I get it now. Thanks for the explanation Steve!
Larry
More information about the memcached
mailing list