No puede almacenar el objeto de resultado, no, pero puede obtener todas las filas en una matriz y almacenar esa matriz. Si necesita refactorizar su código en otros lugares, depende de cómo haya escrito su código y qué tan bien haya abstraído el acceso a la base de datos anteriormente.
Por ejemplo, si tiene una función como esta:
function database_result($query) {
...
$result_array = $result->fetchAll();
return $result_array;
}
Luego puede agregar el almacenamiento en caché de Memcached dentro de esa función:
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;
}
Si usa el objeto PDO o MySQLi sin procesar en todas partes, entonces tiene más trabajo por hacer.