Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Stosowanie md5 przy zapisywaniu cache zapytań
l0ud
post
Post #1





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Witam. Napisałem mały sterownik do bazy danych, który w założeniach ma obsługiwać cachowanie. Po pobraniu danych od bazy używam serialize() i zapisuję plik do folderu cache w przybliżeniu pod nazwą składającą się z prefixu grupy plików cache (dla określonego zadania inny prefix) oraz hasha md5 uzyskanego z treści całego zapytania.
Zarzucę fragmentem kodu odczytującego cache:
  1. <?php
  2. $query_id = md5($query);
  3. if (file_exists($this->cache_dir.$cache_id.'_'.$query_id.$this->cache_ext)) {
  4. $res_id = count($query_res);
  5.  if (($this->query_res[$res_id] = unserialize(file_get_contents($this->cache_dir.$cache_id.'_'.$query_id.$this->cache_ext))) === false) {
  6.  //wyjatek, etc
  7. ?>


Zastanawiam się, czy jest to bezpieczne i niezawodne? Słyszy się przecież o kolizjach md5, a co by się stało, jeżeli taka by nastąpiła w zapytaniach nie trzeba tłumaczyć.
Czy jest jakiś lepszy sposób na przydzielenie unikalnej nazwy dla pliku?

Pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
kliperjk
post
Post #2





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 3.11.2007

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


hmm, wydaje mi sie ze to jest bez sensu troche ;-) pobieranie wart. z pliku rowniez pochlania czas i pamięć...lepiej skorzystaj np. z tego:
http://dev.mysql.com/doc/refman/5.0/en/que...-in-select.html


a najlepiej z:
http://www.danga.com/memcached/
Go to the top of the page
+Quote Post
l0ud
post
Post #3





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


kliperjk, robiłem testy i jednak pobieranie gotowego wyniku zapytania z pliku jest szybsze. Nie sprecyzowałem też przecież dokładnie gdzie będą zapisywane te pliki cache, a przecież będzie mógł być to wydzielony obszar w ram (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.08.2025 - 03:00