Memcached udostępnia opcję czasu wygaśnięcia pamięci podręcznej, która określa, jak długo obiekty są przechowywane w pamięci podręcznej. Zakładając, że wszystkie zapisy przechodzą przez pamięć podręczną, nie rozumiem, dlaczego ktoś chciałby usunąć obiekt z pamięci podręcznej. Innymi słowy, jeśli wszystkie operacje zapisu aktualizują pamięć podręczną przed DB, to pamięć podręczna nigdy nie może zawierać nieaktualnego obiektu, więc dlaczego go usunąć?memcached expiration time
Jednym z możliwych argumentów jest to, że pamięć podręczna wzrośnie w nieskończoność, jeśli obiekty nigdy nie zostaną usunięte, ale memcached pozwala określić maksymalny rozmiar. Po osiągnięciu tego rozmiaru memcached używa najmniej ostatnio używanego algorytmu (LRU) do określania elementów do usunięcia. Podsumowując, jeśli skonfigurowano rozsądny maksymalny rozmiar, a wszystkie zapisy przechodzą przez pamięć podręczną, dlaczego miałbyś chcieć wygasić obiekty po pewnym czasie?
Dzięki, Don
Czytałem, że czasami niewykorzystane klucze mogą zostać usunięte z pamięci podręcznej przed wygasłymi kluczami - jest to poświęcenie, aby zachować skuteczny algorytm oczyszczania pamięci podręcznej LRU. Innymi słowy, nie * nie jest * rozróżnienie między "Ostatnio używane" i "Nie będzie już używane". Klucze, których ważność wygasła, nie są faktycznie usuwane po wygaśnięciu ważności - ale * zostaną * wyczyszczone, gdy następnym razem otrzyma żądanie pobierania. Krótko mówiąc, ustawianie wygasania w rzeczywistości nie pomaga "zostawić więcej miejsca" na niewygasające klucze. –