Memcached PHP Sessions

Steven Grimm sgrimm at
Fri Feb 2 18:36:29 UTC 2007

Larry Leszczynski wrote:
> 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.


More information about the memcached mailing list