de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis...

39
de cache a nosql. Roberto Marin [email protected] https://slides.com/robertomarin/redis https://github.com/robertomarin/redis-de-cache-a-nosql

Transcript of de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis...

Page 1: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

decacheanosql.

[email protected]

https://slides.com/robertomarin/redis

https://github.com/robertomarin/redis-de-cache-a-nosql

Page 2: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.
Page 3: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.
Page 4: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

REDIS?REmoteDIctionaryServer

Criadoem2009por

SalvatoreSanfilippo

Page 5: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

OQUEOREDISNÃOÉ

Somenteumkey/valuestore:Memcached

Umbancodedadosrelacional:MySQL,Oracle,PostGre

Umbancoorientadoadocumentos:MongoDB,CouchDB

Umcache:RedisétãopersistentequandoPostGre->RedisPersistenceDemystified

Page 6: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

ANOTÍCIA

Page 7: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

REDISMEMCACHEMEMCACHED

Page 8: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

DOCUMENTACÃOhttp://redis.io/documentation

http://redis.io/commands

http://redis.io/clients

http://try.redis.io

Page 9: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

INSTALANDOOREDIS

Baixeaversãoatual:http://redis.io/download

Descompacte

$make$maketest$makeinstall

Page 10: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

INICIANDOOREDIS

$redis-serverredis.conf

Page 11: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

GETTINGSTARTED$_CONSOLE

INFO

GET/SET

INCR/DECR

Page 12: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

CLIENTESJAVA

Jedis(maismaduro,maisconhecido)

Redisson(interessante,diferentesfeatures)

Page 13: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

EXEMPLOS{$CODE}

Redis01.java

Redis02.java

Page 14: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

CONFIGURAÇÃO

redis.conf

redis-1200.conf

Page 15: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

REPLICAÇÃO

$SLAVEOFhostport

Page 16: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

SHARDING

Oqueésharding?

Quandodevousarsharding?

Page 17: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

SHARDING

ConfiguraçõesdosShards

IniciarosShards

Exemplo:

Redis03Sharding.java

Page 18: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

ISTHISREALLIFE?

Page 19: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

CEP-CÓDIGOPOSTAL

BaseemMySQL

CachecomRedis

CepTest.java

Performance?!~

Page 20: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

CEPDAOCOMREDISantesDeIrNoBanco()

tentarecuperardoredis;

senãofornulotransformaemobjeto;retornaobjeto;senãorecuperadobanco;transformaemstring(json);armazenanoredis;retornaobjeto;CepRedisDaoTest.java

Page 21: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

OQUETEMDEBOM?

temosumcache:)

OQUETEMDERUIM?

acoplamento:(umaclasseextra;@

Page 22: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

QUEMPODERÁNOSDEFENDER?

Page 23: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

AOPaspectorientedprogramming

Page 24: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

MASOQUEÉAOPMESMO?

Page 25: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

SQL+REDIS+AOP

Lembrando,estamosresolvendo:acoplamento:(umaclasseextra;@

CepAopTest.java

Page 26: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

OQUETEMDEBOM?

únicocódigoparatodos:Dpoucoacoplamento;P

OQUETEMDERUIM?pointcutnãoétãocustomizável=(eseeuquisercolocarumexpires:@

Page 27: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

SQL+REDIS+AOP+@ANNOTATION

=POWER

Page 28: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

SQL+REDIS+AOP+@ANNOTATION

CepAopTest.javaRedisAnnotationAspect.java

Page 29: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

OQUETEMDEBOM?

únicocódigoparatodos:Dpoucoacoplamento;Pexpireseoutrasfeatures=)

OQUETEMDERUIM?nãosei,maspodeficarmelhor!

Page 30: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

ESEAFONTEDEDADOSCAIR?

webservice

bancodedados

Page 31: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

COMOOCACHEPODENOSAJUDAR?emvezdeguardarmosapenasoobjetonoredis

Page 32: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

NÓSGUARDAMOSUMENVELOPEquetemoobjetodentro!:D

Page 33: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

SQL+REDIS+AOP+@ANNOTATION+HA

RedisAnnotationHAAspect.java

Page 34: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

ÉCERTOFAZERISSO?

Page 35: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

AGORAQUEAGENTEFEZTUDOISSO...

PorquenãodeixartodaabasedeCEPsnoRedis?

Éconfiável?

Page 36: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

OUTRASESTRUTURASCOMREDIS

HASHES

LISTS

SETS

SORTEDSETS

Page 37: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

+ =

Page 38: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.
Page 39: de cache a nosql. - qconsp.com · Um banco orientado a documentos: MongoDB, CouchDB Um cache: Redis é tão persistente quando PostGre-> Redis Persistence Demystified. A NOTÍCIA.

Obrigado!

Dúvidas?:)

[email protected]