Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klasa Cache na plikach
gothye
post 15.02.2010, 11:08:21
Post #1





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


witam

napisałem klasa do obsługi cache ,gdzie zawartość cache trzymana jest w plikach

jako że będe również cachował zapytania z SQL i nie chce aby dane z tego gdzieś niepostrzeżenie uciekły (oczywiście katalog cache jest zabezpieczony .htaccess przed odczytem i lisotwaniem z poziomu www) ale wpadłem jeszcze na pomysł szyfrowania pliku cache ( za pomocą biblioteki crypt i klucza 256bit) ,pomiary dla rozmiaru buffora 20kb są dobre i czas wynosci poniżej 0.004s  ,ciekaw jestem waszych opini i spostrzeżeń na temat używania cachowania ,niedługo umieszcze klase do wglądu dla wszystkich 



--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
vokiel
post 15.02.2010, 11:20:54
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Cache z założenia ma przyśpieszyć działanie aplikacji, buforować dane przed wysłaniem do użytkownika.
Kompletnie nie widzę sensu szyfrowania tych danych.
1. I tak wysyłasz je użytkownikowi - czyli i tak mu je pokażesz - sens szyfrowania żaden
2. Przed wysłaniem musisz je odszyfrować - dodatkowe obciążenie serwera, które niweluje zysk na samym cache

IMHO to nie ma sensu. Cache ma przyśpieszyć, a nie zwolnic, a szyfrowanie na pewno spowolni.


--------------------
Go to the top of the page
+Quote Post
gothye
post 15.02.2010, 11:25:07
Post #3





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


znam zasadę cachu ,ale dane do których użytkownik będzie miał dostęp (SQL) będzie posiadał po zalogowaniu tylko ,a jak już napisałem wyżej , dodanie do cachu,zaszyfrowanie ,odszyfrowanie i pobranie danych wielkości 20kb z cachy trwa poniżej 0.004s stosując klucz 256bit


--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
Fifi209
post 15.02.2010, 12:39:42
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Po pierwsze polecam używać gotowych i sprawdzonych rozwiązań, mi np. do gustu przypadło Cache Lite (pakiet PEAR).

Szyfrowanie nie ma sensu, skoro zablokujesz dostęp do katalogu poprzez .htaccess ze zwykłym deny from all to nikt Ci tam nie wejdzie i nie odczyta tych plików.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Pilsener
post 15.02.2010, 12:51:03
Post #5





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Cytat
chce aby dane z tego gdzieś niepostrzeżenie uciekły
- questionmark.gif Przecież to wszystko i tak wyświetlasz na stronie? Gdzie ma niby to uciec i w jaki sposób? To tylko statyczna zawartość, nawet jeśli ktoś ją pobierze to co mu to da? Chyba, że nie wiadomo co trzymasz w tych plikach, może loginy i hasła do bazy smile.gif

A propo gotowych rozwiązań to jest ich sporo:
http://pl.php.net/manual/pl/book.memcached.php - nigdy tego nie używałem, ale trzeba zacząć, inaczej nie będzie miał człowiek doświadczenia i nie będzie mógł porównać wad/zalet różnych rozwiązań.
Go to the top of the page
+Quote Post
ucho
post 15.02.2010, 13:01:36
Post #6





Grupa: Zarejestrowani
Postów: 300
Pomógł: 32
Dołączył: 31.07.2006

Ostrzeżenie: (0%)
-----


Cache na plikach bardzo słabo się skaluje. Jeśli rozdzielasz jeden klucz = jeden plik to samo otwieranie kilkudziesięciu plików będzie wolniejsze niż wykonanie paru zapytań do bazy. Jeśli wszystko trzymasz w jednym pliku to procesy będą wzajemnie walczyć o dostęp do niego. Co do szyfrowania - jeśli ktoś dobrał się już do tych zaszyfrowanych plików cache to myślisz, że nie dobierze się do źródeł strony i nie wyciągnie klucza?
Go to the top of the page
+Quote Post
Fifi209
post 15.02.2010, 13:04:23
Post #7





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(ucho @ 15.02.2010, 13:01:36 ) *
Cache na plikach bardzo słabo się skaluje. Jeśli rozdzielasz jeden klucz = jeden plik to samo otwieranie kilkudziesięciu plików będzie wolniejsze niż wykonanie paru zapytań do bazy. Jeśli wszystko trzymasz w jednym pliku to procesy będą wzajemnie walczyć o dostęp do niego. Co do szyfrowania - jeśli ktoś dobrał się już do tych zaszyfrowanych plików cache to myślisz, że nie dobierze się do źródeł strony i nie wyciągnie klucza?


A kto normalny trzyma cache w jednym pliku? Zastanów się troszkę człowieku...


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
marcio
post 15.02.2010, 14:47:32
Post #8





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Cytat(fifi209 @ 15.02.2010, 13:04:23 ) *
A kto normalny trzyma cache w jednym pliku? Zastanów się troszkę człowieku...

Dokladnie do tego chyba uzywa sie tagow dla cache by ladnie byly pogrupowane do tego mozna cache'owac cale komponenty smile.gif


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
gothye
post 15.02.2010, 15:09:48
Post #9





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


umnie cachowanie wygląda tak :

  1. $cache = new cache();
  2. // konfiguracja wstępna
  3. $cache->CacheDir = ROOT_DIR.'cache';
  4. // nadanie nazwy
  5. $cache->Load('smart'.$SID);
  6. // zapisanie do cache
  7. $cache->Save('aaa','test');






dzieki temu mogę osobno cachować stronę ,wyniki z SQL itp  a za pomocą unikatowego numeru sesji  ,cachuje osobno dane dla każdej otwartej sesji bez obawy na przeniknięcie danych 



--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
kfx
post 15.02.2010, 21:24:47
Post #10





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 15.02.2010

Ostrzeżenie: (10%)
X----


jak juz chcesz, to cache na wielu plikach.
i do tego jakas zamotana nazwa katalogu, zeby nikt nie trafil i po problemie smile.gif
daj sobie do tego htaccess: Deny From All i request z apache'a blokniety

Cytat(gothye @ 15.02.2010, 15:09:48 ) *
umnie cachowanie wygląda tak :

  1. $cache = new cache();
  2. // konfiguracja wstępna
  3. $cache->CacheDir = ROOT_DIR.'cache';
  4. // nadanie nazwy
  5. $cache->Load('smart'.$SID);
  6. // zapisanie do cache
  7. $cache->Save('aaa','test');






dzieki temu mogę osobno cachować stronę ,wyniki z SQL itp  a za pomocą unikatowego numeru sesji  ,cachuje osobno dane dla każdej otwartej sesji bez obawy na przeniknięcie danych 



co to za cache, jak kazdy user ma swoj cache? smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 23:41