2011-02-10 20 views
8

memcachedのアイテムが期限切れにならないように設定されている場合、LRU退去は免除されますか?Memcached LRUおよび有効期限

私が見たドキュメントでは、どちらが優先されているかについて明確な図を描いていません。私の考えでは、LRUを有効期限> 0のアイテムにのみ適用するのが理想的です(おそらく内部的には非常に複雑です)。

答えて

16

いいえ、免除されません。 Memcachedは永続ストレージではなくキャッシュです。その中の項目、またはキャッシュ全体がいつでも消滅する可能性があります(ただし、一杯になっていないか、大きな問題がない限りはそうではありません)。

メモリの負荷が高い場合、LRUアルゴリズムは必要と思われるものをすべて削除します。

memcachedのキャッシュとは何ですか?

キャッシュ構造はLRU(Least Recently Used)と有効期限のタイムアウトです。 memcachedにアイテムを格納するときに、キャッシュ内の有効期間を指定することができます。これは永遠に、または将来のある時です。サーバーのメモリが不足している場合は、期限切れのスラブが最初に置き換えられ、次に使用されていない最も古いスラブが次に移動します。

システムに期限切れのデータの領域がない場合、メモリの最も最近使用されたブロック(スラブ)が廃棄されます。

+0

memcachedは永続的ではありませんが、そこにLRUまたはLFU退去からのエントリを除外する他のキャッシュソリューションがあります。 – Mark

3

docによると、expirezero_does_not_evictが 'true'に設定されている場合、終了時間が0のアイテムは退去できません。

関連する問題