Cache i microcache
Cache (pamięć podręczna) to mechanizm przechowywania wyników kosztownych operacji — wyrenderowanych stron, odpowiedzi API, wyników zapytań do bazy — po to, by kolejne żądania obsłużyć natychmiast, bez ponownego generowania tych samych danych. Microcache to szczególna odmiana tej techniki: buforowanie w pełni dynamicznych odpowiedzi na bardzo krótki czas, zwykle od 1 do 10 sekund.
Jak działa cache i microcache?
Buforowanie występuje na wielu warstwach: przeglądarka przechowuje zasoby statyczne zgodnie z nagłówkiem Cache-Control, CDN i reverse proxy (Nginx, Varnish) trzymają kopie odpowiedzi blisko użytkownika, aplikacja odkłada dane w Redisie lub Memcached, a interpreter PHP kompiluje skrypty raz dzięki OPcache. Każda warstwa skraca drogę żądania i odciąża kolejne ogniwa.
Microcache działa na poziomie reverse proxy. Pierwsze żądanie w danym oknie czasu przechodzi do backendu i generuje stronę, a wszystkie następne — przez np. 5 sekund — dostają gotową kopię z pamięci. Przy ruchu 500 żądań na sekundę oznacza to, że aplikacja renderuje stronę raz na kilka sekund zamiast 500 razy w każdej sekundzie. Kluczowe mechanizmy uzupełniające to blokada jednoczesnego odświeżania (tylko jedno żądanie regeneruje wpis, reszta czeka lub dostaje wersję przeterminowaną) oraz pomijanie bufora dla użytkowników zalogowanych.
Zastosowanie w praktyce
Microcache najlepiej sprawdza się w serwisach dynamicznych o dużym ruchu anonimowym: portalach informacyjnych, blogach, katalogach produktów, stronach wydarzeń sportowych. Treść może zmieniać się co kilka sekund, a mimo to serwer wytrzymuje nagłe szczyty — np. wejście z mediów społecznościowych — bez zwiększania zasobów. To także prosty bezpiecznik łagodzący skutki nagłych fal ruchu, zanim zadziała skalowanie.
W typowej konfiguracji hostingu lub VPS microcache realizuje moduł proxy_cache lub fastcgi_cache w Nginx, a pełny cache stron w CMS-ach — wtyczki generujące statyczny HTML. Obie techniki warto łączyć: microcache chroni backend globalnie, a cache aplikacyjny przyspiesza pojedyncze, kosztowne zapytania.
Powiązane pojęcia
Najczęstsze pytania
Jaki czas życia ustawić dla microcache?
Zwykle od 1 do 10 sekund. Nawet 1 sekunda potrafi zredukować obciążenie backendu setki razy przy dużym ruchu, bo w danym oknie czasu tylko jedno żądanie generuje stronę. Im bardziej „newsowy” serwis, tym krótszy TTL warto przyjąć.
Czy microcache można stosować dla zalogowanych użytkowników?
Co do zasady nie — odpowiedzi spersonalizowane (koszyk, panel klienta) nie powinny trafiać do współdzielonego bufora. W praktyce konfiguruje się pomijanie cache dla żądań z ciasteczkiem sesji lub nagłówkiem autoryzacji, a buforuje wyłącznie ruch anonimowy.
