SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Turbinando
Drupal
com
Redis
Daniel Santos - @apachetec
Daniel Santos - Apache
daniel@justdigital.com.br
@apachetec
instagram.com/apachetec
slideshare.com/apachetec
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
Principais diferenças entre Redis comparado ao Memcached
❖ Tipo de Dados
❖ Documentação
❖ 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
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
Hashes
Redis
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.
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
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
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
Sorted Set
Redis
Sorted Set
Funciona basicamente como o tipo
List, salvo que ele não permite valores
duplicados e nos permite realizar
ordenações.
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
Drupal + Redis
No Drupal utilizamos o módulo Redis
e também temos que utilizar uma
biblioteca para integrarmos o PHP ao
Redis.
Drupal + Redis
O próprio módulo sugere as
bibliotecas que devemos utilizar
Predis ou PhpRedis.
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.
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';
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 não esteja no mesmo servidor
da sua aplicação, pelo fato de ele usar
a memória RAM para guardar seus
dados.
Live Examples
Redis
Dúvidas?
Perguntas
OBRIGADO!!!
Daniel Santos - Apache
Web Developer Full Stack
daniel@justdigital.com.br
Mobile: +55 (11) 9 6624-4654

Mais conteúdo relacionado

Mais procurados (8)

MySQL - Instalação e Alguns comandos de Banco de Dados
MySQL - Instalação e Alguns comandos de Banco de DadosMySQL - Instalação e Alguns comandos de Banco de Dados
MySQL - Instalação e Alguns comandos de Banco de Dados
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 
Prog web 07-pdo
Prog web 07-pdoProg web 07-pdo
Prog web 07-pdo
 
Migrate linux user password to postfix vmail database
Migrate linux user password to postfix vmail databaseMigrate linux user password to postfix vmail database
Migrate linux user password to postfix vmail database
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
Curso mongo db com php
Curso mongo db com phpCurso mongo db com php
Curso mongo db com php
 
SQL Saturday 570 - São Paulo - 2016
SQL Saturday 570 - São Paulo - 2016SQL Saturday 570 - São Paulo - 2016
SQL Saturday 570 - São Paulo - 2016
 
OpenLDAP: Porque utilizá-lo
OpenLDAP: Porque utilizá-loOpenLDAP: Porque utilizá-lo
OpenLDAP: Porque utilizá-lo
 

Destaque

Drupal High Availability High Performance 2012
Drupal High Availability High Performance 2012Drupal High Availability High Performance 2012
Drupal High Availability High Performance 2012
Amazee Labs
 

Destaque (13)

Drupal In The Cloud
Drupal In The CloudDrupal In The Cloud
Drupal In The Cloud
 
High Performance on Drupal 7
High Performance on Drupal 7High Performance on Drupal 7
High Performance on Drupal 7
 
Building enterprise high availability application with drupal
Building enterprise high availability application with drupalBuilding enterprise high availability application with drupal
Building enterprise high availability application with drupal
 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance Drupal
 
Implementing High Performance Drupal Sites
Implementing High Performance Drupal SitesImplementing High Performance Drupal Sites
Implementing High Performance Drupal Sites
 
Drupal High Availability High Performance 2012
Drupal High Availability High Performance 2012Drupal High Availability High Performance 2012
Drupal High Availability High Performance 2012
 
ProTips for Staying Sane while Working from Home
ProTips for Staying Sane while Working from Home ProTips for Staying Sane while Working from Home
ProTips for Staying Sane while Working from Home
 
Highly available Drupal on a Raspberry Pi cluster
Highly available Drupal on a Raspberry Pi clusterHighly available Drupal on a Raspberry Pi cluster
Highly available Drupal on a Raspberry Pi cluster
 
Enterprise Drupal Application & Hosting Infrastructure Level Monitoring
Enterprise Drupal Application & Hosting Infrastructure Level MonitoringEnterprise Drupal Application & Hosting Infrastructure Level Monitoring
Enterprise Drupal Application & Hosting Infrastructure Level Monitoring
 
Ansible + Drupal: A Fortuitous DevOps Match
Ansible + Drupal: A Fortuitous DevOps MatchAnsible + Drupal: A Fortuitous DevOps Match
Ansible + Drupal: A Fortuitous DevOps Match
 
Amazon Web Services Building Blocks for Drupal Applications and Hosting
Amazon Web Services Building Blocks for Drupal Applications and HostingAmazon Web Services Building Blocks for Drupal Applications and Hosting
Amazon Web Services Building Blocks for Drupal Applications and Hosting
 
How we build a startup with Drupal
How we build a startup with DrupalHow we build a startup with Drupal
How we build a startup with Drupal
 
Growth Hacking
Growth HackingGrowth Hacking
Growth Hacking
 

Semelhante a Turbinando Drupal com Redis

PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
Marco Pinheiro
 
3260 php truquesmagicos %281%29
3260 php truquesmagicos %281%293260 php truquesmagicos %281%29
3260 php truquesmagicos %281%29
Juliana Nascimento
 

Semelhante a Turbinando Drupal com Redis (20)

PHP e Redis
PHP e RedisPHP e Redis
PHP e Redis
 
Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
 
Cache com redis novatec
Cache com redis novatecCache com redis novatec
Cache com redis novatec
 
Cache com redis novatec
Cache com redis novatecCache com redis novatec
Cache com redis novatec
 
Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3
 
Oficial
OficialOficial
Oficial
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
 
Crud
CrudCrud
Crud
 
Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01
 
Alinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLAlinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQL
 
Phpinterior sp redis
Phpinterior sp redisPhpinterior sp redis
Phpinterior sp redis
 
Slides do cuso_php
Slides do cuso_phpSlides do cuso_php
Slides do cuso_php
 
No sql std
No sql stdNo sql std
No sql std
 
Desenvolvimento Mobile com Ruby
Desenvolvimento Mobile com RubyDesenvolvimento Mobile com Ruby
Desenvolvimento Mobile com Ruby
 
3260 php truquesmagicos %281%29
3260 php truquesmagicos %281%293260 php truquesmagicos %281%29
3260 php truquesmagicos %281%29
 
3260 php truquesmagicos
3260 php truquesmagicos3260 php truquesmagicos
3260 php truquesmagicos
 
Bancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWSBancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWS
 
PDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTOPDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTO
 
Escalabilidade com Redis
Escalabilidade com Redis Escalabilidade com Redis
Escalabilidade com Redis
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Turbinando Drupal com Redis

  • 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
  • 8. String Funciona da forma tradicional, Chave x Valor.
  • 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';
  • 24. 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';
  • 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.
  • 28. OBRIGADO!!! Daniel Santos - Apache Web Developer Full Stack daniel@justdigital.com.br Mobile: +55 (11) 9 6624-4654