Temat: [zend] cacheowanie częściowych danych
Grzegorz Kaszuba:
Hej!
Stoję przed takim problemem: w bazie danych odświeżają mi się informacje co tydzień. Aby przyspieszyć ich ładowanie - wszystko leci do Zend_Cache. Problem jednak w tym, że zakeszowanie całości danych z bazy potrafi trwać do 2 minut (tyle tego jest).
Chce więc zrobić tak, że co tydzień do cache będzie doładowywana jedynie nowa "paczka" ze zmianami z zeszłego tygodnia, a użytkownik pobierałby całość tak jak do tej pory. Więc trzeba by robić jakieś porównanie a potem dołączać tę "paczkę". Macie pomysł jak to rozwiązać w miarę sprytnie?
YYY a po co? Cache nie ma za zadanie trzymać kopii Twojej bazy, a jedynie jej części których użytkownicy potrzebują.
Dla przykładu:
Masz sklep z odzieżą.
- Klient wchodzi na wybrany produkt, on po pobraniu zostaje zapisany w Cache-u, następnym razem jak wejdzie na ten produkt zostanie on załadowany z cache-a.
- Gdy wchodzi na stronę O firmie, dane zostają pobrane z bazy i zapisane w cache-u, następnym razem odczyt z cache
itd., itd.
Zapis małych porcji danych jest praktycznie niezauważalny.
Acha, jak aktualizujesz bazę np. poprzez import następuje czyszczenie cache-a.
Warto pamiętać, że Zend_Cache pozwala utrzymywać cache przez zróżnicowany okres czasu, jeśli strony O firmie, kontakt, regulamin odświeżane są raz na miesiąc można ustawić by cache odświeżał je raz na miesiąc.
Odnośnie zmian, to optymalnie można zrobić tak, że przy zapisywaniu cache-a prócz danych i id podasz również tagi jednoznacznie identyfikujące obiekt cache-owany, podczas importu robisz remove na cache-u aktualizowanych obiektów
pozdrawiam