Memcache not freeing memory when a key expires

Brad Fitzpatrick brad at
Mon Feb 27 23:55:26 UTC 2006

As designed.  It expires things lazily as they're accessed or fall off the
LRU.  It's designed to be all O(1), so things like trees/priority queues
for finding expired items to expire them ahead of time violate that.

On Mon, 27 Feb 2006, Stephen Corgiat wrote:

> Hello,
> We're seeing some weird behavior from memcached.. Hopefully somebody can
> provide some knowledge on this issue.
> When we set a key in memcache with a TTL of, say, 60 seconds, after 60
> seconds has gone by the data "expires".  This is normal, but it seems the
> data is not truely freed by memcached (based on the 'bytes' stats field).
> We've found that the only way to get the memory released is to try to do a
> GET on the key.
> I always thought if you had a bunch of keys with a TTL of 0, once all
> available memory was consumed, memcache would start removing the least used
> keys to make room for new keys. In our tests, this never happened.
> We've tried installations on FreeBSD & Linux, 1.1.12 & 1.1.11... all with
> the same results.
> Thanks!
> Stephen

More information about the memcached mailing list