Memcached PHP Sessions

Larry Leszczynski larryl at
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!


More information about the memcached mailing list