Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Stosowanie md5 przy zapisywaniu cache zapytań
Forum PHP.pl > Forum > PHP
l0ud
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 smile.gif
kliperjk
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/
l0ud
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 winksmiley.jpg
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.