Como implementar cache de objetos com REDIS Por padrão o Adianti permite um cache de objetos com a classe TAPCache, que utiliza o APCu. Desenvolvi a classe RedisCache que permite a utilização com o Redis. Segue o link do código da classe: https://gist.github.com/brunoconstantino/32a7ec5ae89530f9c55da637984b2d6e Esta classe RedisCache.php deverá ser colocada em app/lib/registry/RedisCache.php C...
BC
Como implementar cache de objetos com REDIS  
Por padrão o Adianti permite um cache de objetos com a classe TAPCache, que utiliza o APCu.
Desenvolvi a classe RedisCache que permite a utilização com o Redis.

Segue o link do código da classe:
https://gist.github.com/brunoconstantino/32a7ec5ae89530f9c55da637984b2d6e

Esta classe RedisCache.php deverá ser colocada em app/lib/registry/RedisCache.php

Como utilizar?


Para usar é bem simples:
Na Model que desejar colocar o cache, defina a variável CACHECONTROL com 'RedisCache'. Igual o exemplo abaixo:

<?phpclass Customer extends TRecord{    const TABLENAME    = 'customer';    const PRIMARYKEY   = 'id';    const IDPOLICY     = 'max'; // {max, serial}    const CACHECONTROL = 'RedisCache';}?>


Alterando os dados de conexão


Por padrão, a classe irá se conectar ao redis local. 127.0.0.1:6379
Caso deseje mudar a conexão com o banco de dados, existe duas formas:

Alterando os dados de conexão - Forma 1:


Crie um arquivo em app/config/redis.php com as seguintes variáveis:
<?phpreturn [        'host' => '127.0.0.1',        'port' => 6379,        //'password' => 'secretkey',        'connectTimeout' => 2.5,        //'lifetimeKey' => 3600 // Prazo de Expiração dos objetos (em segundos)        ];?>


Alterando os dados de conexão - Forma 2:


No final do arquivo init.php adicione:
<?php    $database = [                'host' => '127.0.0.1',                'port' => 6379,                //'password' => 'secretkey',                'connectTimeout' => 2.5,                //'lifetimeKey' => 3600 // Prazo de Expiração dos objetos (em segundos)                ];    RedisCache::setDatabaseInfo($database);?>


Adicionar prazo para expiração de objetos


O Redis permite que você crie objetos com prazo para ser expirado, e esta classe está apta a utilizar este recurso.
Para ativar, basta definir nas configurações o parâmetro lifetimeKey com a quantidade de segundos que deseja que o objeto expire.
Este recurso não funciona com a configuração padrão do REDIS, devendo ser realizada a configuração na Forma 1 ou Forma 2.

Mais informações sobre Cache de Objetos:
https://www.adianti.com.br/forum/pt/view_1341?banco-de-dados-em-memoria-nao-span

Obrigado!

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (1)


PD

Parabéns Bruno!