Cache: definicja i wszystkie obszary, w których stosuje się buforowanie

Obszary, w których stosuje się cache, od sprzętu po sieć WWW, zebrano w jednym drzewie według podziału Wikipedii, MDN i oficjalnej dokumentacji WordPressa. CPU, system operacyjny, baza danych i przeglądarka używają tej samej nazwy, więc to, co znika po wyczyszczeniu cache, zależy od warstwy.
Pamięć podręczna (cache) tymczasowo przechowuje często używane lub wkrótce potrzebne dane w magazynie szybszym niż oryginał, a gdy przychodzi to samo żądanie, odpowiada tą kopią zamiast oryginału.
Artykuł angielskiej Wikipedii Cache (computing) dzieli pamięci podręczne na sprzętowe, takie jak cache CPU i GPU, oraz programowe, takie jak cache dysku, WWW, DNS i bazy danych. Poniższe drzewo grupuje ten podział według miejsca, w którym znajduje się dany cache, a cache WWW opisano według podziału MDN na private cache i shared cache.
W symulatorze z artykułu Cache witryny & wewnętrzny cache serwera: jak działa pamięć podręczna WordPressa możesz sprawdzić, w jakiej kolejności cache przeglądarki, CDN i wewnętrzny cache serwera obsługują jedno żądanie WordPressa.
Ⅰ. Urządzenia użytkownika
Cache na urządzeniach użytkownika, takich jak komputery osobiste i smartfony, można podzielić na cache systemu operacyjnego (OS), cache przeglądarki i cache aplikacji mobilnych.
Cache dysku (cache stron) zatrzymuje w pamięci dane odczytane z dysku i jest zarządzany przez jądro systemu operacyjnego. Cache DNS przechowuje ostatnio sprawdzane domeny i adresy IP.
Gdy ten sam zasób jest żądany ponownie, żądanie nie trafia do serwera albo sprawdza tylko, czy zasób się zmienił. Dzięki Service Workerowi (Cache API) aplikacja webowa może otworzyć się z zapisanych zasobów nawet offline.
Aplikacje obsługujące duże ilości treści zapisują na urządzeniu pobrane dane i ostatnio oglądane listy, aby nie pobierać tych samych danych ponownie.
Ⅱ. Cache serwera i aplikacji
Cache po stronie serwera to cache włączony w proces budowania strony po dotarciu żądania do serwera. Oficjalna dokumentacja WordPressa dzieli go na wtyczki cache (cache stron), cache obiektów i cache serwera (cache opcode, taki jak OPcache).
Przy żądaniu tej samej strony wysyła zapisaną kopię bez uruchamiania PHP. Są wtyczki cache i cache serwera WWW.
Gdy ten sam plik jest uruchamiany ponownie, kompilacja jest pomijana. Od PHP 5.5 jest wbudowany domyślnie.
Zapisuje często używane dane w magazynie w pamięci, aby nie powtarzać tego samego zapytania.
Frameworki webowe zapisują wyrenderowane szablony i wyniki zapytań we własnym cache.
Ⅲ. Cache dostarczania treści / infrastruktury sieciowej
Cache w infrastrukturze sieciowej odpowiada kopią między odwiedzającym a serwerem źródłowym, co skraca fizyczną odległość i zmniejsza obciążenie serwera źródłowego. W standardzie cache HTTP odpowiada to shared cache, z którego korzysta wielu odwiedzających.
Dostarcza treść z serwera najbliższego odwiedzającemu spośród serwerów rozmieszczonych na całym świecie. Budowę i zalety opisano w artykule Czym jest CDN? Powody, by z niego korzystać, i 5 zalet poświęconym temu zagadnieniu.
Proxy przekazujące zapisuje odpowiedzi po stronie klienta, jak w sieci firmowej, a odwrotne proxy przed serwerem.
Urządzenia sieciowe zapisują powiązania w cache ARP, a resolwery DNS operatorów i publiczne przechowują wyniki zapytań przez czas TTL rekordu.
Ⅳ. Cache baz danych i systemów pamięci masowej
Ponieważ operacje wejścia/wyjścia dysku są wolne, bazy danych i urządzenia pamięci masowej trzymają często odczytywane dane w pamięci.
Trzyma w pamięci często odczytywane dane i indeksy. Cache zapytań MySQL usunięto w wersji 8.0; MariaDB nadal go ma, ale domyślnie jest wyłączony.
Pamięć wbudowana w kontroler dysku twardego i DRAM wewnątrz SSD tymczasowo przechowują dane, zmniejszając opóźnienia wejścia/wyjścia.
Ⅴ. Cache na poziomie sprzętu
Cache sprzętowy to szybka pamięć wewnątrz CPU i GPU, która przetwarza dane szybciej niż pamięć główna (RAM).
L1 jest osobny dla każdego rdzenia i dzieli się na cache instrukcji i cache danych, a L3 jest współdzielony przez wszystkie rdzenie. Jednostka zarządzania pamięcią (MMU) zapisuje w TLB wyniki tłumaczenia adresów wirtualnych na fizyczne.
Zwiększa wydajność przetwarzania GPU w grach, grafice 3D i obliczeniach uczenia maszynowego.
Ⅵ. Cache w środowiskach chmurowych / wirtualizacji
Środowiska chmurowe i wirtualizacji ponownie wykorzystują obrazy kontenerów, środowiska wykonawcze funkcji i artefakty buildów, skracając czas wdrażania i uruchamiania.
Obraz Dockera składa się z kilku warstw, a warstwy, które się nie zmieniły, nie są ponownie budowane ani pobierane.
Utrzymuje przez pewien czas środowisko wykonawcze zakończonego wywołania i używa go ponownie przy następnym wywołaniu, skracając czas inicjalizacji (Cold Start) (Warm Start).
Skraca czas powtarzanych buildów.
🔢 FAQ & polecane treści









ℹ️ Informacja o linkach partnerskich
Treści tej witryny zawierają linki partnerskie. Jeśli odwiedzający kupi produkt lub usługę przez taki link, witryna otrzymuje od sprzedawcy prowizję. Kwota płacona przy tym przez kupującego (podczas promocji spada↓) nie wzrasta. Podane ceny, rabaty i dostępność odnoszą się do chwili pisania i mogą różnić się od stanu faktycznego, dlatego przed zakupem sprawdź je u sprzedawcy. Produkty wybieramy i oceniamy według własnych kryteriów, a prowizja nie wpływa ani na kolejność prezentacji, ani na treść ocen.