Memcache not freeing memory when a key expires
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:
> 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.
More information about the memcached