turbinando drupal com redis

Download Turbinando Drupal com Redis

Post on 11-Apr-2017

310 views

Category:

Technology

2 download

Embed Size (px)

TRANSCRIPT

  • Turbinando Drupal

    comRedis

    Daniel Santos - @apachetec

  • Daniel Santos - Apache

    daniel@justdigital.com.br

    @apachetec

    instagram.com/apachetec

    slideshare.com/apachetec

    https://twitter.com/apachetechttp://instagram.com/apachetechttp://slideshare.com/apachetec

  • Redis - Remote Dictionary Server

    Redis um banco de Dados NoSql. Ele foi criado por Salvatore Sanfilippo, que disponibilizou o cdigo para a comunidade open-source em 2009

  • Principais diferenas entre Redis comparado ao Memcached

    Tipo de Dados

    Documentao

    Suporte a outras tecnologias

    Tamanho do valor suportado

    Command line

  • Tipos de dados suportados pelo Redis

    String

    Hashes

    Lists

    Sets

    Sorted Sets

  • String

    Redis

  • String

    Funciona da forma tradicional, Chave x Valor.

  • redis> set mykey "value" // Define um valor do tipo string

    Execuo

    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

  • Hashes

    Redis

  • Hashes

    Funciona de uma forma parecida como propriedades em um objeto,

    podendo definir uma chave e mltiplos valores com Chave x Valor,

    associados a essa nica chave.

  • redis> hset mykey field1 "field1" // Define uma chave x valor a uma key

    Execuo

    redis> hmset mykey field2 "field2" field3 "field3" // Define mltiplos 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

  • Lists

    Redis

  • Lists

    Funciona quase como um array indexado, com ele podemos definir uma chave e uma lista de valores

    associoados a essa chave.

  • redis> lpush mykey "value" // Adiciona um valor no topo de uma lista

    Execuo

    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

  • Sorted Set

    Redis

  • Sorted Set

    Funciona basicamente como o tipo List, salvo que ele no permite valores

    duplicados e nos permite realizar ordenaes.

  • redis> zadd mykey 0 "value" // 0 = score (weight)

    Execuo

    redis> zrank mykey "value" // retorna o score do valor

    redis> zrangebyscore mykey -inf +inf // Ordena ASC

    redis> zrevrangebyscore mykey +inf -inf // Ordena DESC

  • Drupal + Redis

    No Drupal utilizamos o mdulo Redis e tambm temos que utilizar uma

    biblioteca para integrarmos o PHP ao Redis.

    https://www.drupal.org/project/redis

  • Drupal + Redis

    O prprio mdulo sugere as bibliotecas que devemos utilizar

    Predis ou PhpRedis.

    https://github.com/nrk/predishttps://github.com/phpredis/phpredishttps://github.com/nrk/predis

  • 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 configurao muito importante quando voc est utilizando o Drupal com Multi-Sites.

  • settings.php

    Aqui so alguns arquivos que devemos sobrescrever do padro do Drupal, assim alteramos as configuraes padres de cache, que por padro 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';

  • settings.php

    $conf['cache_default_class'] = 'Redis_Cache';$conf['cache_class_cache'] = 'Redis_Cache';$conf['cache_class_page'] = 'Redis_Cache';$conf['cache_class_content'] = 'Redis_Cache';$conf['cache_class_block'] = 'Redis_Cache';$conf['cache_class_views'] = 'Redis_Cache';$conf['cache_class_views_data'] = 'Redis_Cache';$conf['cache_class_cache_form'] = 'Redis_Cache';$conf['cache_class_cache_menu'] = 'Redis_Cache';$conf['cache_class_cache_bootstrap'] = 'Redis_Cache';

  • Obs:

    O Ideal de se trabalhar com Redis, que ele no esteja no mesmo servidor da sua aplicao, pelo fato de ele usar

    a memria RAM para guardar seus dados.

  • Live Examples

    Redis

  • Dvidas?

    Perguntas

  • OBRIGADO!!!

    Daniel Santos - ApacheWeb Developer Full Stack

    daniel@justdigital.com.br

    Mobile: +55 (11) 9 6624-4654

    mailto:daniel@justdigital.com.brmailto:daniel@justdigital.com.br