Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: php + mysql + cache
Forum PHP.pl > Forum > PHP
chez
witam,
potrzebuje jakiegoś kodu, klasy lub czego kolwiek co by pobierało z bazy danych np co 2godziny wpisy, zapisywalo w pliku cache i wyświetlało na stronie, chodzi mi o to żeby wykorzystać to na stronie: torrents.one.pl (nie chce dawac tutaj reklamy tylko pokazac na czym mialo by to dzialac bo nie wiem za bardzo jak to wytlumaczyc, nie jestem w stanie biggrin.gif)

klasy podane na forum za bardzo nie dzialaja, lub nie umiem ich wykorzystac :/

z gory dzieki!
pozdrawiam!
sniezny_wilk
Możesz coś takiego sam napisać, wystarczy poczytać o CRONIE, i o zapisie plików w PHP. Ustawiasz odpalanie crona co 2h, wybierasz odpowiedni skrypt i gotowe.
chez
sam tak myślałem ale niestety u mnie na serwerze niestety nie działa CRON
sniezny_wilk
Żaden problem, skorzystaj z WebCron.
nospor
ale poco tutaj cron?
Na stronie pobierasz dane z bazy. Zapisujesz do cache. Waznosc cache uzstawiasz na 2 godziny. Przy nastepnych requestach pobierasz z cache a nie z bazy. No chyba ze cache stracil waznosc to znowu pobierasz z bazy, zapisujesz do cache itd...

Zrobi ci to kazda normalna klasa do cache, np w moim podpisie. Jak nie chcesz bawic sie w klasy to zwykly skrypcik z paroma dodatkowymi liniami.
sniezny_wilk
Cytat(nospor @ 2.06.2008, 12:22:59 ) *
ale poco tutaj cron?
Na stronie pobierasz dane z bazy. Zapisujesz do cache. Waznosc cache uzstawiasz na 2 godziny. Przy nastepnych requestach pobierasz z cache a nie z bazy. No chyba ze cache stracil waznosc to znowu pobierasz z bazy, zapisujesz do cache itd...

Zrobi ci to kazda normalna klasa do cache, np w moim podpisie. Jak nie chcesz bawic sie w klasy to zwykly skrypcik z paroma dodatkowymi liniami.

Hmm.. rozumiem, że proponujesz rozwiązanie user wchodzi na stronę i wtedy sprawdzana ważność cache i ewentualnie pobierane są dane ? a co wtedy jeśli danych jest dużo ? Przy większych ilościach i bardziej skomplikowanych skryptach, uważam, że cron będzie najlepszym rozwiązaniem.
nospor
Cytat
a co wtedy jeśli danych jest dużo ?
I co z nimi? Czy w cron czy nie cron w cache zawsze bedzie taka sama ilosc danych.
A moze chodzi ci o pobor z bazy? No raz na dwie godziny jak poleci do bazy to nic mu nie bedzie. Dane z bazy pobierają sie blyskawicznie, nawet jak jest ich duzo. Przeciez nie mowimy tu o pobieraniu wszystkich miliona rekordow z bazy smile.gif Poco wowczas cache skoro i tak skrypt jest do 4 liter winksmiley.jpg
sniezny_wilk
Cytat(nospor @ 2.06.2008, 12:29:29 ) *
I co z nimi? Czy w cron czy nie cron w cache zawsze bedzie taka sama ilosc danych.
A moze chodzi ci o pobor z bazy? No raz na dwie godziny jak poleci do bazy to nic mu nie bedzie. Dane z bazy pobierają sie blyskawicznie, nawet jak jest ich duzo. Przeciez nie mowimy tu o pobieraniu wszystkich miliona rekordow z bazy smile.gif Poco wowczas cache skoro i tak skrypt jest do 4 liter winksmiley.jpg

W sumie coś w tym jest, ale wg. mnie jest to nieoptymalne rozwiązanie, bo za każdym razem jak user wchodzi na stronę jest sprawdzana ważność cache.. niepotrzebne. Tak wiem, że to pierdoła, że to będzie szybko itp, ale uważam, że mało optymalne.
chez
nospor mógłbyś dać przykład wykorzystania tej twojej klasy ? bo z tamtego przykładu co jest zamieszczony w archiwum to nie działa albo ja źle robie. Albo jak mógłbyś na gg napisać: 852852
nospor
Cytat
jak user wchodzi na stronę jest sprawdzana ważność cache
jest to pewien niemalze niezauwazalny narzut.
A teraz sobie wyobraź sytuację ze z jakis powodow cache stworzony przez crona zniknal... ups, całą strone szlag trafił (a przynajmniej miejsce gdzie sa dane pobierane z cache)

@chez Cache jest pisany dla php5. jak masz php4 to dzialac nie bedzie smile.gif
sniezny_wilk
Cytat(nospor @ 2.06.2008, 12:35:55 ) *
jest to pewien niemalze niezauwazalny narzut.
A teraz sobie wyobraź sytuację ze z jakis powodow cache stworzony przez crona zniknal... ups, całą strone szlag trafił (a przynajmniej miejsce gdzie sa dane pobierane z cache)

@chez Cache jest pisany dla php5. jak masz php4 to dzialac nie bedzie smile.gif


Jak cache stworzony przez crona może zniknąć ? To będzie bardzo skrajny przypadek smile.gif Ale myślę, że dyskusja nie jest potrzebna w tym temacie, bo ja nie zrezygnuję ze swojego zdania i nadal uważam, że CRON będzie lepszy, a Ty ~nospor zapewne też zadania nie zmienisz winksmiley.jpg I jedno i drugie rozwiązanie jest podobne i różnią się funkcjonalnością i zasadą działania, więc autor wybierze co mu pasuje.. ale tak jak widać wybierze Twojego gotowca dry.gif w sumie, po to one są biggrin.gif
chez
nospor na serwerze mam php4 i php5 smile.gif a już korzystam z Twojej klasy (pager) smile.gif
nospor
Cytat
ak cache stworzony przez crona może zniknąć ? To będzie bardzo skrajny przypadek
No nie wiem, ja widziałem w swoim życiu już parę ładnych takich skrajnych przypadków.
Ale juz nawet pomijajac brak plik lub nie - to rozwiązanie moim zdaniem wydaje się niewygodne dla programisty.

Cytat
nospor na serwerze mam php4 i php5
No i pytanie jaki php obsluguje skrypty z cache. Musisz to sprawdzic.
jakies bledy dostajesz? Jak nie to włącz ich wyswietlanie:
http://nospor.pl/php-faq-n29.html#faq-2

Co do Pagera to jego akurat pisałem i na php4 i na php5 (nie licząc ostatniej wersji - 2.5 wzwyz).
chez
no teraz nie pamiętam co było, może to nie w Twojej klasie ale było coś takiego że niby coś zapisywało do plików cache (katalog ~/cache/) ale na strone dalej z bazy pobierało a nie z cache :/
nospor
Cytat
no teraz nie pamiętam co było, może to nie w Twojej klasie ale było coś takiego że niby coś zapisywało do plików cache
no tak to nie dojdziemy do porozumienia - "cos moze kiedys ale nie wiem czy to w tej klasie czy w innej" smile.gif
Ja powiem tak: ja uzywam mojej klasy i pobiera z cache dopoki cache jest wazny smile.gif
W paczce są przyklady uzycia. Zrob cos na tej podstawie. Jak faktycznie nie bedzie dzialac to pokaz wowczas co napisales i czym sie blad objawia konkretnie.
chez
teraz tak się z nią pobawiłem że nawet teraz nie umiem jej wykorzystać :/


tak wygląda moje zapytanie:
Kod
$sql="SELECT * FROM torki WHERE id = '$id' ";
$result = mysql_query ($sql) or die ("bład zapytania select");
$row = mysql_fetch_array ($result);

wiadomo o co chodzi, zmienna $id jest wczesniej przypisana do $_GET['id'] i przefiltrowana

wyświetlenie danych z bazy następuje poprzez wywołanie zmiennej:
$row['title']
$row['cat']
$row['size']
itd ...


mógłbyś nospor zarzucić kodem na to ?
nospor
No dobra, a gdzie tu cache? Moglbys troche pokazac ze cos robisz a nie liczysz na to ze zrobie za ciebie. ostatnio nie mam sily na takie zabawy smile.gif
W paczce są kody przykładowe. Trzeba tylko nad tym chwile usiasc. Jak juz usiądziesz i bedziesz mial jakąś probe za sobą, to pokaz kod.
chez
tylko ze nie za bardzo umiem na klasach operować :/
pest
Wiem, że temat może już się przedawnił, ale wydaje mi się, że w takim przypadku całkiem dobrym rozwiązaniem byłoby użycie QuickCache.

Nospor:
Nie widziałem twojego mechanizmu cacheującego, ale tylko polecam mechanizm, który widziałem jak działa, a najchętniej poczytałbym jeszcze jakieś doświadczenia innych z nim związane. Dokładniej: jak w praktyce przy dłuższym użyciu się sprawuje itp.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.