2011-02-10 4 views
8

Если элемент в memcached не установлен, он не освобождается от высылки LRU?Memcached LRU и истечение срока действия

Документы, которые я видел, не нарисовали четкую картину того, что имеет преимущество. На мой взгляд, было бы идеально (возможно, очень сложно внутренне), чтобы LRU применялся только к предметам, срок действия которых был равен 0.

ответ

16

Нет, он не освобожден. Memcached - это кеш, а не постоянное хранилище. Любой элемент внутри него или весь кеш может исчезнуть в любой момент (но это маловероятно, если оно не заполнено, или существует серьезная проблема).

При избыточном давлении памяти алгоритм LRU удалит все, что он считает нужным.

Что такое кеш memcached?

Структура кеша LRU (наименее используемая), плюс таймауты истечения срока действия. Когда вы храните элементы в memcached, вы можете указать, как долго он будет действителен в кеше. Что навсегда, или какое-то время в будущем. Если на сервере не хватает памяти, то истекшие слябы сначала заменяются, затем идут самые старые неиспользуемые плиты.

Если система не имеет областей с истекшими данными, она выкинет наименее недавно используемый блок (плиту) памяти.

+0

Как раз отметить, я понимаю, что memcached не является постоянным, но есть другие решения кэширования, которые будут освобождать записи от выключения LRU или LFU. – Mark

3

doc сказал, что когда expirezero_does_not_evict настроено на 'true', элементы с 0 exptime не могут выселить.

Смежные вопросы