Lançado Adianti Framework 7.6!
Clique aqui para saber mais
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:

  1. <?php
  2. class Customer extends TRecord
  3. {
  4.     const TABLENAME    'customer';
  5.     const PRIMARYKEY   'id';
  6.     const IDPOLICY     'max'// {max, serial}
  7.     const CACHECONTROL 'RedisCache';
  8. }
  9. ?>


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:
  1. <?php
  2. return [
  3.         'host' => '127.0.0.1',
  4.         'port' => 6379,
  5.         //'password' => 'secretkey',
  6.         'connectTimeout' => 2.5,
  7.         //'lifetimeKey' => 3600 // Prazo de Expiração dos objetos (em segundos)
  8.         ];
  9. ?>


Alterando os dados de conexão - Forma 2:


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


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 completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (1)


PD

Parabéns Bruno!