![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 385 Pomógł: 26 Dołączył: 22.03.2008 Skąd: TM Ostrzeżenie: (0%)
|
Do cache użyj np JPCache..
Co cache'ować? Wyniki z baz danych.. No ogólnie wsyzstko co może nadwyrężyć serwer.. Ile? Ile się da (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Cache'ujesz te dane które się rzadko zmieniają ;p |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 8.11.2006 Skąd: Kanagawa-ken, Japonia Ostrzeżenie: (10%)
|
A nie można pewnych informacji, które się "rzadko zmieniają" trzymać w sesjach? Czy pomyliłem idee funkcjonalności?
|
|
|
|
Post
#3
|
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Ok, a sesję komuś udostępniasz? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 8.11.2006 Skąd: Kanagawa-ken, Japonia Ostrzeżenie: (10%)
|
Nie bardzo rozumiem ...
Skoro cache ma służyć do przyśpieszania strony i zapobiegać ładowania danych - które zmieniają się relatywnie rzadko - co odświeżenie strony, to nie lepiej, żeby te dane były przechowywane w sesjach? Czy te scache'owane dane mają być dostępne nie tylko dla jednego, ale dla większej ilości użytkowników? Pierwszy raz spotykam się z cache przy stronach, dlatego nurtuje mnie kilka rzeczy. Mam nadzieję, że nie macie mi tego za złe ( ; |
|
|
|
Post
#5
|
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Cytat Czy te scache'owane dane mają być dostępne nie tylko dla jednego, ale dla większej ilości użytkowników? Gdyby dla jednego, nie miałoby to sensu. Cache'uje się całe strony tylko wtedy, gdy we wszystkich przypadkach rezultat będzie ten sam. |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 2 Dołączył: 4.02.2009 Ostrzeżenie: (0%)
|
A co gdyby przy pierwszym wejściu pobierać dane z z bazy danych i przechowywać je w sesjach?
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 8.11.2006 Skąd: Kanagawa-ken, Japonia Ostrzeżenie: (10%)
|
Nie wiem - albo nie jestem w formie, albo jaki inny szkopuł, ale nie potrafię tego zrozumieć ... mająć 10,000 użytkowników jakie strony można cache'ować? Wszystko dzieje się wtedy bardzo dynamicznie, tj. utrzymując, że 10,000 osób coś aktualnie robi ... rezultat zawsze będzie inny ... chyba, że wchodzi w grę nadpisywanie zacache'owanych plików, ale to z kolei następne sprawdzanie starych, nadpisywanie ich i tak w kółko ... to naprawdę jest takie wydajne?
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 2 Dołączył: 4.02.2009 Ostrzeżenie: (0%)
|
Cacheować można np. wyniki skomplikowanych obliczeń, w których nie ma zmiennych. To najprostszy przykład. Innym, bardziej przydatnym, może być lista zarejestrowanych użytkowników. Przy wejściu na odpowiednią stronę dane pobierane by były z bazy i zapisywane do pliku na serwerze. Przy każdym następnym wejściu sprawdzane by było, czy plik cache jest "świeży". Jeśli nie, na nowo byłyby pobierane dane z bazy i znowu zapisywane do pliku.
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%)
|
Nie wiem - albo nie jestem w formie, albo jaki inny szkopuł, ale nie potrafię tego zrozumieć ... mająć 10,000 użytkowników jakie strony można cache'ować? Wszystko dzieje się wtedy bardzo dynamicznie, tj. utrzymując, że 10,000 osób coś aktualnie robi ... rezultat zawsze będzie inny ... chyba, że wchodzi w grę nadpisywanie zacache'owanych plików, ale to z kolei następne sprawdzanie starych, nadpisywanie ich i tak w kółko ... to naprawdę jest takie wydajne? Zauważ jak np. działają gry internetowe powiedzmy punkty uaktualniane są raz na godzinę. News'y - zmieniasz zawartość cache w przypadku dodania nowego, edycji, usunięcia (dla przykładu (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) ) |
|
|
|
Post
#10
|
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Cytat A co gdyby przy pierwszym wejściu pobierać dane z z bazy danych i przechowywać je w sesjach? Daruj sobie sesje do cache'owania... (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Cytat ale to z kolei następne sprawdzanie starych, nadpisywanie ich i tak w kółko ... to naprawdę jest takie wydajne? Owszem, jedno zapytanie potrafi zajeździć całą bazę, a nie ma możliwości optymalizacji. Poza tym, cache to nie tylko pliki; są dziesiątki innych rozwiązań. PS: Wydzieliłem z: http://forum.php.pl/index.php?showtopic=126106 |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 8.11.2006 Skąd: Kanagawa-ken, Japonia Ostrzeżenie: (10%)
|
Acha ... rozumiem ... czyli po prostu temat wyciąga się z bazy raz, potem się go po prostu cachuje i w razie edycji, usunięcia czy bóg wie czego jeszcze - modyfikuje? Jeżeli tak, to nie wydajniej jest cachować w bazie?
|
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 8.11.2006 Skąd: Kanagawa-ken, Japonia Ostrzeżenie: (10%)
|
Dobrze erix, ale zapytanie podające wyraźne argumenty w dajmy na to "SELECT" wobec tematu z 1,000 postami będzie wydajniejsze, niż taki scache'owany plik? A jeżeli nie pliki, tylko baza - to wracamy do punktu wyjścia ...
|
|
|
|
Post
#13
|
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Scache'owany plik będzie tu w 90% przypadków szybszy. ;]
Cytat Jeżeli tak, to nie wydajniej jest cachować w bazie? Nie. Zestawienie połączenia z bazą wymaga czasu i zasobów (vide: specyfikacja TCP), a jeśli masz dobrze rozplanowany cache, to unikniesz łączenia z DBMS. ;] |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 8.11.2006 Skąd: Kanagawa-ken, Japonia Ostrzeżenie: (10%)
|
Dobrze. Niech będą te pliki. Zarys mamy, tylko teraz trzeba napisać system, który by się ładnie zajął cachowaniem. Już tam kij z zapisem, ale usuwanie tekstu czy nadpisywanie ... od bardzo dawna nie robiłem nic z plikami, trza będzie chyba pamięć odświeżyć ...
|
|
|
|
Post
#15
|
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%)
|
Dobrze. Niech będą te pliki. Zarys mamy, tylko teraz trzeba napisać system, który by się ładnie zajął cachowaniem. Już tam kij z zapisem, ale usuwanie tekstu czy nadpisywanie ... od bardzo dawna nie robiłem nic z plikami, trza będzie chyba pamięć odświeżyć ... Po co wynajdywać koło na nowo? Odpalasz google.pl wrzucasz: pear czytasz co to jest... potem wrzucasz w google pear cache lite A tu masz artykuł jak zainstalować pear: http://windowshosting.pl/PEAR:.skrypty.ktore.musisz.znac |
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%)
|
Cytat od bardzo dawna nie robiłem nic z plikami, trza będzie chyba pamięć odświeżyć - nie trzeba, wystarczy file_put_contents + serialize i file_get_contents + unserialize.Ja ostatnio wykonałem prosty system cache dla swoich potrzeb, który przechowuje szereg informacji (wymagających 5-8 zapytań mysql) w zserializowanej tablicy, obciążenie bazy spadło praktycznie do zera, bo cache jest aktualizowane tylko w PA, ręcznie lub automatycznie (podczas określonych akcji) - piszesz prostą klasę/funkcję do aktualizowania i cieszysz się wydajnością. Prosty system cache napiszesz w pół dnia, przy większych projektach warto pomyśleć o np. memcache czy innych gotowyhc rozwiązaniach (choćby klasa Nospor'a etc.) |
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 2 Dołączył: 4.02.2009 Ostrzeżenie: (0%)
|
Cytat - nie trzeba, wystarczy file_put_contents + serialize i file_get_contents + unserialize. Jednak chyba więcej. Bo przecież czasami zajdzie potrzeba utworzenia nowego pliku, z innymi danymi cache, czasem usunąć, utworzyć folder na pliki z innej kategorii. Bo się bałagan porobi. Cytat Dobrze. Niech będą te pliki. Zarys mamy, tylko teraz trzeba napisać system, który by się ładnie zajął cachowaniem. Już tam kij z zapisem, ale usuwanie tekstu czy nadpisywanie ... od bardzo dawna nie robiłem nic z plikami, trza będzie chyba pamięć odświeżyć ... http://pl.php.net/manual/pl/ref.filesystem.php Sprawdź fopen, fwrite, fclose, flock, is_dir, is_file, mkdir, unlink, rmdir, rename, basename, file_get_contents, f_gets (i pokrewne) i fread. Powinno wystarczyć (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Ten post edytował lukada 22.07.2009, 14:30:56 |
|
|
|
Post
#18
|
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%)
|
Jednak chyba więcej. Bo przecież czasami zajdzie potrzeba utworzenia nowego pliku, z innymi danymi cache, czasem usunąć, utworzyć folder na pliki z innej kategorii. Bo się bałagan porobi. Przecież file_put_contents w przypadku nieistnienia pliku utworzy go... Nie przesadzaj, że będziesz miał tyle plików cache że będziesz je katalogował. |
|
|
|
Post
#19
|
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 2 Dołączył: 4.02.2009 Ostrzeżenie: (0%)
|
Przecież file_put_contents w przypadku nieistnienia pliku utworzy go... Nie przesadzaj, że będziesz miał tyle plików cache że będziesz je katalogował. Ja wolę jednak wszystko katalogować, zawsze to większy porządek. A jak się strona rozrośnie, to po co od nowa wszystko pisać. Lepiej raz, a w miarę porządnie. Albo ściągnąć gotowe rozwiązania, ale to wiele nie uczy. |
|
|
|
Post
#20
|
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%)
|
|
|
|
|
![]() ![]() |
|
Aktualny czas: 26.12.2025 - 01:11 |