Memcache not freeing memory when a key expires

Brad Fitzpatrick brad at danga.com
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