Pamięć podręczna
Pamięć podręczna (cache) przechowuje wcześniej wygenerowane wyniki, aby Joomla nie musiała przy każdym wejściu ponownie wykonywać tych samych zapytań i budować całej strony od początku. Skraca to czas odpowiedzi serwera i zmniejsza jego obciążenie. Po wygaśnięciu czasu cache albo po jego wyczyszczeniu Joomla tworzy dane ponownie.
Trzy sposoby buforowania treści w Joomla
- Pamięć konserwatywna zapisuje widok komponentu i wybrane moduły. Każdy moduł może korzystać z ustawienia globalnego albo mieć cache wyłączony. Jest to bezpieczny wybór dla większości stron.
- Pamięć progresywna zapisuje zestaw modułów wyświetlanych na danej stronie jako całość. Może ograniczyć liczbę operacji przy kolejnych odsłonach, ale daje mniej kontroli nad pojedynczym modułem.
- Pamięć całej strony działa przez dodatek System - Page Cache. Joomla zapisuje kompletny kod HTML adresu i przy następnym wejściu może zwrócić go bez ponownego składania widoku i modułów. Ten wariant wymaga ostrożności na stronach z treścią zależną od sesji, formularzami lub koszykiem.
Opisane mechanizmy rdzenia dotyczą przede wszystkim użytkowników niezalogowanych. Rozszerzenia mogą dodatkowo korzystać z własnych metod buforowania.
Gdzie Joomla przechowuje cache?
Poziom pamięci podręcznej określa co Joomla buforuje. Osobne ustawienie Cache Handler określa gdzie zapisuje dane. W aktualnym rdzeniu Joomla 6.1 dostępne są:
- File - domyślny zapis w plikach. Sprawdza się na typowym hostingu oraz na małych i średnich stronach działających na jednym serwerze.
- APCu - zapis w pamięci współdzielonej PHP. Jest szybki i dobrze pasuje do pojedynczego serwera lub VPS, jeśli dostawca włączył rozszerzenie APCu. Nie współdzieli danych między kilkoma serwerami WWW.
- Memcached - zewnętrzna usługa pamięciowa. Pasuje do serwisów o większym ruchu i środowisk z kilkoma serwerami, gdy wszystkie instancje mają korzystać ze wspólnego cache.
- Redis - zewnętrzny magazyn danych w pamięci. Jest dobrym wyborem dla serwisów o dużym ruchu, wielu instancji Joomla lub hostingu, który udostępnia zarządzaną usługę Redis.
APCu, Memcached i Redis pojawią się jako użyteczne opcje tylko wtedy, gdy serwer ma wymagane rozszerzenie PHP i poprawną konfigurację usługi. Starsze materiały mogą używać nazw APC lub Memcache. W aktualnym kodzie Joomla właściwe nazwy obsługiwanych mechanizmów to APCu i Memcached; XCache oraz eAccelerator nie są już magazynami cache rdzenia.
Jak wybrać? Na zwykłym hostingu zacznij od File i poziomu konserwatywnego. Na pojedynczym, dobrze skonfigurowanym serwerze warto przetestować APCu. Redis albo Memcached mają sens, gdy są już poprawnie utrzymywane przez administratora lub dostawcę i pomiary pokazują korzyść. Poziom konserwatywny lub progresywny można łączyć z każdym dostępnym magazynem.
Źródła: Joomla Programmer Documentation: Caching Components and Modules, Joomla Programmer Documentation: Cache Storage, magazyny cache w kodzie Joomla 6.1.