Metodos para mantener en cache información que no cambiará muy seguido, y que no es necesario saturar la BD de consultas .
<?php
include 'mysql.php';
global $memcache;
$memcache = new Memcache;
$memcache->pconnect('localhost',11211) or die("Conexión lenta...");
function Get_memcache($key) {
global $memcache;
return ($memcache) ? $memcache->get($key) : false;
}
function Set_memcache($key,$object) {
global $memcache;
$timeout = 432000; //5dias
return ($memcache) ?
$memcache->set($key,$object,MEMCACHE_COMPRESSED,$timeout) : false;
}
function Go_memcache($key) {
global $memcache;
//Limpiar toda la cache : $memcache->flush();
$identificador = md5("mysql" . $key);
$cache = Get_memcache($identificador);
if (!($cache)) {
// echo "dentro";
$db = new MySQL();
$rs = $db->consulta(Querysql($key));
if ($rs){
for ($data = array (); $row = $rs->fetch_assoc(); $data[] = $row);
Set_memcache($identificador,$data);
$cache = Get_memcache($identificador);
}
}
return $cache;
}
function Querysql($key){
$sql = null;
if($key==="planes")
$sql= "SELECT * FROM TABLA1";
elseif($key==="sedes")
$sql= "SELECT * FROM TABLA2 ";
return $sql;
}
No hay comentarios:
Publicar un comentario
Todos los comentarios son bien recibidos...