Otimizando sites com o nosql redis
Upcoming SlideShare
Loading in...5
×
 

Otimizando sites com o nosql redis

on

  • 4,311 views

 

Statistics

Views

Total Views
4,311
Views on SlideShare
2,448
Embed Views
1,863

Actions

Likes
4
Downloads
19
Comments
0

6 Embeds 1,863

http://allissonazevedo.com 1793
http://lucas-luiz.blogspot.com.br 53
http://lucas-luiz.blogspot.com 12
http://webcache.googleusercontent.com 3
http://localhost 1
http://translate.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Otimizando sites com o nosql redis Otimizando sites com o nosql redis Presentation Transcript

  • Otimizando sites com o NoSQL Redis Allisson Azevedo – V Ensol allisson arroba gmail.com twitter.com/allisson slideshare.net/allisson
  • Allisson Azevedo➔ Graduação no curso de Licenciatura em Computação – UEPB➔ Desenvolvedor web ➔ Django|Tornado|Rails|NodeJS ➔ MySQL|PostgreSQL ➔ MongoDB|Redis➔ Arquiteturas escaláveis
  • Redis➔ Código Aberto – Licença BSD ➔ Salvatore Sanfilippo (antirez) (2009) ➔ 2.2.11 ➔ http://github.com/antirez/redis ➔ Escrito em C (padrão C99) ➔ http://redis.io/➔ Banco de dados chave-valor avançado➔ Dados em memória ➔ http://www.infoq.com/news/2008/06/ram-is-disk
  • http://s3.amazonaws.com/four.livejournal/20091117/jsconf.pdf
  • Redis➔ Persistência em disco➔ Replicação mestre-escravo➔ Cluster (redis 3.0?)
  • Instalação➔ Dependências ➔ sudo apt-get install build-essential ➔ yum install gcc make➔ tar xvzf redis-2.2.11.tar.gz➔ cd redis-2.2.11/➔ make➔ make test (opcional, necessita do tcl8.5 instalado)➔ src/redis-server
  • Persistência➔ Snapshotting ➔ Padrão ➔ Cópia dos dados em disco de forma periódica ➔ save x y: Depois de x segundos, salve se ao menos y chaves forem modificadas ➔ save 900 1 ➔ Como a cópia é periódica, dados podem ser perdidos durante um crash
  • Persistência➔ Append-only file ➔ Desde a versão 1.1 ➔ Evita possíveis perdas de dados do snapshotting ➔ BGREWRITEAOF
  • Databases➔ Suporte a múltiplos databases➔ 0 – 15➔ 0 é o padrão
  • Estruturas de dados➔ Strings ➔ Qualquer tipo de dado, inclusive binários
  • Estruturas de dados➔ Lists ➔ Uma lista de strings ➔ Acesso rápido nas pontas ➔ Não tão rápido no acesso aleatório
  • Estruturas de dados➔ Sets ➔ Uma coleção de strings não ordenadas ➔ Não permite elementos repetidos ➔ Permite operações de união, diferença e intercessão
  • Estruturas de dados➔ Sorted Sets ➔ Sets ordenados por um score
  • Estruturas de dados➔ Hashes ➔ Permite armazenar vários valores em uma chave
  • Usos➔ Task/Job Queues ➔ Resque (Ruby) – http://github.com/blog/542-introducing-resque ➔ Celery (Python) – http://celeryproject.org/
  • Usos➔ Estatísticas de downloads
  • Usos➔ Limitar uso de api
  • Usos➔ Banners aleatórios
  • Usos➔ Categorias/Tags
  • Usos➔ Categorias/Tags ➔ Artigos relacionados ➔ Tag1 AND Tag2 → SINTER ➔ Tag1 OR Tag2 → SUNION
  • Usos➔ Session store ➔ Django-redis-session (Django) – http://bitbucket.org/dpaccoud/django-redis- sessions/overview ➔ Redis-session-store (Rails) – http://github.com/mattmatt/redis-session-store
  • Usos➔ Feed/Timeline
  • Usos➔ Sugestões de amigos
  • Usos➔ Wiki locking
  • Dúvidas?