Usando Memcache com Kohana PHP

O Memcache é um sistema de cache de memória distribuída de alta performance, que permite acesso rápido a objetos que são armazenados em seu cache. A utilização vai da criatividade e necessidade do programador, que pode armazenar resultados de consultas, imagens, objetos, códigos para rápido acesso posterior.

Servers
Creative Commons License photo credit: JohnSeb

O uso de Memcache normalmente segue um padrão:

  1. O aplicativo recebe uma consulta do usuário ou do aplicativo.
  2. O aplicativo verifica se os dados necessários para satisfazer a consulta estão no cache de memória.
  3. Se os dados estiverem no cache de memória, o aplicativo utiliza os dados.
  4. Se os dados não estiverem no cache de memória, o aplicativo consulta o armazenamento de dados e armazena os resultados no cache de memória para solicitações futuras.

Legal, e no Kohana?

Primeiro passo, vamos copiar o arquivo /system/config/cache.php para /application/config/cache.php
Configure o arquivo para que fique desta forma:

$config['default'] = array(
  'driver'   => 'memcache',
  'params'   => '',
  'lifetime' => 3600,
  'requests' => 1000
);

Você pode alterar os parâmetros como precisa, onde sugiro:

lifetime = 3600 segundos (1h de timeout)
requests = 1000 (mil requisições de timeout)

E se o MemCache estiver em outro servidor?

Ai está, uma dica importante! Se você não executa o MemCache no mesmo servidor do Kohana, você precisa alterar o arquivo cache_memcache.php  em application/config. Se você tiver mais de um servidor memcached, você pode adicioná-las ao array $config['servers']. Veja um exemplo:

$config['servers'] = array(
  array(
    'host' => '127.0.0.1',
    'port' => 1234,
    'persistent' => FALSE
  )
);

Exemplos

Pronto as configurações, agora é a hora tão esperada em usar o cache, e realmente é a etapa mais fácil:

// Instancia o cache
$cache = Cache::instance();

// Tentando obter dados do cache
$retorno = $cache->get('item');

if(!$retorno)
{
  // Dados não retornaram, obtendo dados da origem
  $retorno = ORM::Factory('teste')->dados();

  // Gravando novo cache
  $cache->set('item',$retorno);
}

Simples, não? É Kohana e é por isso que eu gosto!

Related Posts with Thumbnails
Esta entrada foi publicada em Desenvolvimento, Kohana e marcada com a tag , , , , , . Adicione o link permanenteaos seus favoritos.

3 respostas a Usando Memcache com Kohana PHP

  1. Beto disse:

    Pô o memcache é sem sombra de dúvidas uma mão na roda :D
    Bela dica!

  2. Maicon Pinto disse:

    Show, teu blog lá no topo das pesquisas do Koahana hein…

    show de bola Marcelo….

    Mas acabei de ver teus posts e ainda não tem nada com session's ….

    Quando tiver tempo, dá um exemplo básico, que qualquer dúvida a gente tira pelos comentários….

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>