usando memcached con cakephp

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:

memcached with cakephp,Mencache cakephp

Noticias relacionadas »

5 comentarios en usando memcached con cakephp

  1. Draka
    / Responder

    hola, siempre que he intentado configurar con memcache me sale este error
    Undefined index: prefix [CORE/Cake/Cache/Cache.php]
    sabes que podría ser??? te lo agradecería mucho

    • Pedro Ventura
      / Responder

      Primero comprueba que tienes bien instalado memcache. Puedes seguir este tutorial http://www.pedroventura.com/blog_programacion/linux/como-instalar-memcached-guia-de-instalacion-y-uso-de-memcached/ y luego comprobar que el servidor de mencache es accesible mediante php y puedes escribir un simple array o una cadena de texto en memcache y luego la recuperas, esto hazlo en php plain… luego lo pruebas en cake

      En cake tiene bien configurado el core.php?

      • Draka
        / Responder

        ya descubrí el problema, es que yo uso para programar memcached a secas, y cake y los tutoriales aunque lo llaman memcached usan memcache.
        Entonces instalé memcache y funcionó bien.

  2. / Responder

    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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Invertir en criptomonedas: »

 

Cómo comprar bitcoin

Invertir y comprar Bitcoin y otras altcoins es más fácil de lo que crees.

1) Si sólo quieres comprar Bitcoin, Ethereum o Litecoin como inversión, tu opción es Coinbase

2) Si quieres probar con otras criptomonedas tu opción es Binance

3) Cualquier duda escríbeme con total libertad al formulario de contacto para resolver dudas: https://www.pedroventura.com/contacto/

¡Comparte este artículo! »

  • Irene (3 días)
    I used www.zerobounce.net and it is an amazing platform for…
  • Felipe Albornoz (4 días)
    Agradecido. Saludos.
  • Joel (2 semanas)
    Este grupo es buenísimo hay personas de todo el mundo…
  • Citricus (3 semanas)
    Análisis muy buenos y detallados: Crypto Trading Campus https://t.me/cryptotradingcampus
  • Vane (2 meses)
    Hola muy buena información, en lo personal mino con Javascript…
  • Gabriel Roncancio (2 meses)
    Hola Pedro, gracias por compartir. Tu artículo me dió algunas…

Suscríbete al newsletter »

Proporciona tu correo electrónico a continuación y recibe las últimas noticias! Funciona con Feedburner de Google

Archivo »

Leer entrada anterior
Configurando y Optimizando un servidor. Nuevas mejoras en my.cnf y arrancando en utf8

Siguiendo la optimización del servidor comentada en otros post, por ejemplo el de: Configurando y Optimizando un servidor. my.cnf voy...

Cerrar