Memcache : guardar en cache datos SQL

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...

CommentFB