LRUにも色々あるよねーって話。ちなみにmemcachedとRedisのどっちがいいか的な話ではない。 memcachedのLRU memcachedは起動時のオプション-mで最大何バイトまでmemcachedにメモリを食わせるかを指定することが出来て、この値を超えてmemcachedにデータをぶっ込もうとするとデータの追い出し(eviction)が発生します。どのデータが追い出されるかはいわゆるLRU(Least Recently Used)で、つまり最近使われていないデータが追い出されます。なので、「memcachedはLRUだよ」と言われると「ふーん」と分かったような気分になりますが、実はmemcachedのLRUはデータ全体におけるLRUではなくslab classごとのLRUなので、この辺を勘違いしていると痛い目に合います。 slab allocatorそのものについてはここでは