konto usunięte

Temat: [zend] cacheowanie częściowych danych

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?

konto usunięte

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

konto usunięte

Temat: [zend] cacheowanie częściowych danych

Darku, masz rację. Co jednak jeśli mam dane za okres 5 lat, w cache trzymam za ostatnie pol roku, a co tydzien chce dogrywać coś nowego? Robienie cache za pol roku wlasnie tyle trwa. Stąd moje pytanie.

konto usunięte

Temat: [zend] cacheowanie częściowych danych

Grzegorz Kaszuba:
Darku, masz rację. Co jednak jeśli mam dane za okres 5 lat, w cache trzymam za ostatnie pol roku, a co tydzien chce dogrywać coś nowego? Robienie cache za pol roku wlasnie tyle trwa. Stąd moje pytanie.

Jeśli dogrywasz nowe rzeczy, cache-a nie kasujesz, lub kasujesz te części która jest wspólna (np. listy, zestawienia). Nie ma sensu generować całego cache-a zaraz po aktualizacji, cache może sam się generować podczas odwiedzin użytkowników, jak wspomniałem wcześniej, użyj mechanizmu tagów podczas zapisywania, powinno pomóc.

Następna dyskusja:

phpunit, zend, doctrine i b...




Wyślij zaproszenie do