Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Memcache - Speichern von MySQL-Ergebnissen

Sie können das Ergebnisobjekt nicht speichern, nein, aber Sie können alle Zeilen in ein Array holen und dieses Array speichern. Ob Sie Ihren Code an anderen Stellen umgestalten müssen, hängt davon ab, wie Sie Ihren Code geschrieben haben und wie gut Sie zuvor den Datenbankzugriff abstrahiert haben.

Wenn Sie zum Beispiel eine Funktion wie diese haben:

function database_result($query) {
   ...
   $result_array = $result->fetchAll();
   return $result_array;
}

Dann können Sie Memcached-Caching innerhalb dieser Funktion hinzufügen:

function database_result($query, $expire = 60) {
   $memcached_key = 'db:' . $query;
   $cached = $memcached->get($memcached_key);
   if ($memcached->getResultCode() !== Memcached::RES_NOTFOUND) {
       return $cached;
   }
   ...
   $result_array = $result->fetchAll();
   $memcached->set($memcached_key, $result_array, $expire);
   return $result_array;
}

Wenn Sie überall das rohe PDO- oder MySQLi-Objekt verwenden, haben Sie mehr Arbeit zu erledigen.