usando memcached con cakephp
Memcached es un sistema distribuido de cache de objetos está especialmente indicado para webs dinámicas con gran carga a la base de datos.
Memcache es una cache en memoria ram, al contrario que la mayoria de los tipos de cache que son mediante ficheros físicos en disco duro. Se puede almacenar fragmentos arbitrarios de datos, ya sean un cadena, un array, un objeto un trozo de html o una página entera.
Considero que memcached es un elemento obligatorio a usar en las aplicaciones con cakephp ya que éstas realizan una gran carga a la base de datos cuando hay muchas relaciones entre modelos.
Ejemplo por defecto de una configuración de cache con memcache en /app/config/core.php
Cache::config('default', array(
'engine' => 'Memcache', //[required]
'duration'=> 3600, //[optional]
'probability'=> 100, //[optional]
'prefix' => Inflector::slug(APP_DIR) . '_', //[optional] prefix every cache file with this string
'servers' => array(
'127.0.0.1:11211' // localhost, default port 11211
), //[optional]
'compress' => false, // [optional] compress data in Memcache (slower, but uses less memory)
));
Un ejemplo real:
Cache::config('memcache_ram', array('engine' => 'Memcache','duration'=> 3600,'probability'=> 100,'servers' => array('127.0.0.1:11211' ), 'compress' => false));
Ejemplo de uso en un controlador
function leer_post($id)
{
$resultado = Cache::read('post_'.$id,'memcache_ram');
if(empty($resultado))
{
$resultado = $this->Cake->findById($id);
$resultado = Cache::write('post_'.$id,$resultado,'memcache_ram');
}
$this->set('datos_post',$resultado);
}
Del resto del funcionamiento de éste sistema de cache no hay que preocuparse ya que en cakephp está muy bien integrada la API que hay en php para las conexiones al servicio de memcache, la inserccion de nuevos datos y la devolución de los mismos.
Como he dicho antes, si usais cakephp,una pieza clave de la arquitectura de la aplicación es la cache, y si es memcache mucho mejor!!
Tags de búsquedas:
cakephp memcache model, cakephp memcached
Posts Relacionados:
- memcached tool. Herramienta para visualizar el uso de la cache en ram con memcached Como he comentado en otro post Memcache es una cache en memoria ram, al contrario que la mayoria de los tipos de cache que son mediante ficheros físicos en disco...
- Como instalar memcached. Guía de instalación y uso de memcached Memcached es un sistema de cache que almacena datos, arrays u objetos memoria RAM, reduciendo por ejemplo peticiones a bases de datos. Al cachear un site conseguimos que se cargue...
- Una aplicación, multiples bases de datos CakePHP Tengo que lanzar un web para varios países y aprovecharé la potencia de CakePHP para realizar una sola plataforma con varias bases de datos. Cada base de datos almacenará el...
- Cakephp generar logs con $this->log(); Generar logs de datos en CakePHP es muy simple y útil con la función log() que es parte de la clase Object que es común para la mayoria de las...
- Crear archivos PDF con CakePHP En este post voy a comentar lo que he hecho para crear archivos PDF con CakePHP. Los ingredientes para esta “receta” son: 1.- La librería TCPDF que se encarga de...

RSS Feed
Hola Pedro! Pregunta, haces referencia a “Cache:: ..” en un archivo de configuración. Por lo tanto Cache es una clase php que se debe incluir en Cake. donde o como la incluyes?. Es decir ¿Cómo sabe CakePhp donde esta la clase Cache para poder instanciar sus metodos?
Un saludo.
Son métodos estáticos: http://www.php.net/manual/en/language.oop5.static.php.
Creo que se incluye en cake/libs/cache.php como un subpaquete de librerías.
http://api12.cakephp.org/class/cache
un saludo!