Turbine sua aplicação Drupal, utilizando o Banco de Dados NoSql Redis, aqui dou uma introdução rápida sobre o que é o Redis, e como integra-lo a nossa aplicação Drupal.
2. Daniel Santos - Apache
daniel@justdigital.com.br
@apachetec
instagram.com/apachetec
slideshare.com/apachetec
3.
4. Redis - Remote Dictionary Server
Redis é um banco de Dados NoSql. Ele foi
criado por Salvatore Sanfilippo, que
disponibilizou o código para a
comunidade open-source em 2009
5. Principais diferenças entre Redis comparado ao Memcached
❖ Tipo de Dados
❖ Documentação
❖ Suporte a outras tecnologias
❖ Tamanho do valor suportado
❖ Command line
6. Tipos de dados suportados pelo Redis
❖ String
❖ Hashes
❖ Lists
❖ Sets
❖ Sorted Sets
9. redis> set mykey "value" // Define um valor do tipo string
Execução
redis> append mykey " last value" // Concatena uma string
redis> hget mykey // Retorna a string associada a chave
redis> strlen mykey // Retorna a quantidade de caracteres de uma string
11. Hashes
Funciona de uma forma parecida
como propriedades em um objeto,
podendo definir uma chave e
múltiplos valores com Chave x Valor,
associados a essa única chave.
12. redis> hset mykey field1 "field1" // Define uma chave x valor a uma key
Execução
redis> hmset mykey field2 "field2" field3 "field3" // Define múltiplos chave x valor a uma key
redis> hget mykey field1 // Retorna o valor de uma propriedade de um hash
redis> hvals mykey // Retorna somente os valores de um hash
14. Lists
Funciona quase como um array
indexado, com ele podemos definir
uma chave e uma lista de valores
associoados a essa chave.
15. redis> lpush mykey "value" // Adiciona um valor no topo de uma lista
Execução
redis> lpop mykey // Retorna e remove o primeiro valor de uma lista
redis> rpush mykey "value" // Adiciona um valor no fim de uma lista
redis> llen mykey // Retorna a quantidade de valores em uma lista
17. Sorted Set
Funciona basicamente como o tipo
List, salvo que ele não permite valores
duplicados e nos permite realizar
ordenações.
18. redis> zadd mykey 0 "value" // 0 = score (weight)
Execução
redis> zrank mykey "value" // retorna o score do valor
redis> zrangebyscore mykey -inf +inf // Ordena ASC
redis> zrevrangebyscore mykey +inf -inf // Ordena DESC
19.
20. Drupal + Redis
No Drupal utilizamos o módulo Redis
e também temos que utilizar uma
biblioteca para integrarmos o PHP ao
Redis.
21. Drupal + Redis
O próprio módulo sugere as
bibliotecas que devemos utilizar
Predis ou PhpRedis.
22. settings.php
$conf['redis_client_interface'] = 'Predis'; // Definindo a biblioteca que estou
utilizando.
$conf['redis_client_host'] = '127.0.0.1'; // Define o host onde está o Server do Redis.
$conf['cache_prefix'] = 'blog_'; // Um prefixo para as chaves que o Drupal irá
inserir no Redis, essa configuração é muito importante quando você está
utilizando o Drupal com Multi-Sites.
23. settings.php
Aqui são alguns arquivos que devemos sobrescrever do padrão do Drupal, assim
alteramos as configurações padrões de cache, que por padrão é inserido no
Banco de Dados.
$conf['lock_inc'] = 'sites/all/modules/contrib/redis/redis.lock.inc';
$conf['path_inc'] = 'sites/all/modules/contrib/redis/redis.path.inc';
$conf['cache_backends'][] = 'sites/all/modules/contrib/redis/redis.autoload.inc';
25. Obs:
O Ideal de se trabalhar com Redis, é
que ele não esteja no mesmo servidor
da sua aplicação, pelo fato de ele usar
a memória RAM para guardar seus
dados.