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

Upload: vandiep

Post on 09-Nov-2018

249 views

Category:

Documents


0 download

TRANSCRIPT

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]