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

Post on 09-Nov-2018

249 views 0 download

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

decacheanosql.

RobertoMarinrobertom@buscapecompany.com

https://slides.com/robertomarin/redis

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

REDIS?REmoteDIctionaryServer

Criadoem2009por

SalvatoreSanfilippo

OQUEOREDISNÃOÉ

Somenteumkey/valuestore:Memcached

Umbancodedadosrelacional:MySQL,Oracle,PostGre

Umbancoorientadoadocumentos:MongoDB,CouchDB

Umcache:RedisétãopersistentequandoPostGre->RedisPersistenceDemystified

ANOTÍCIA

REDISMEMCACHEMEMCACHED

DOCUMENTACÃOhttp://redis.io/documentation

http://redis.io/commands

http://redis.io/clients

http://try.redis.io

INSTALANDOOREDIS

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

Descompacte

$make$maketest$makeinstall

INICIANDOOREDIS

$redis-serverredis.conf

GETTINGSTARTED$_CONSOLE

INFO

GET/SET

INCR/DECR

CLIENTESJAVA

Jedis(maismaduro,maisconhecido)

Redisson(interessante,diferentesfeatures)

EXEMPLOS{$CODE}

Redis01.java

Redis02.java

CONFIGURAÇÃO

redis.conf

redis-1200.conf

REPLICAÇÃO

$SLAVEOFhostport

SHARDING

Oqueésharding?

Quandodevousarsharding?

SHARDING

ConfiguraçõesdosShards

IniciarosShards

Exemplo:

Redis03Sharding.java

ISTHISREALLIFE?

CEP-CÓDIGOPOSTAL

BaseemMySQL

CachecomRedis

CepTest.java

Performance?!~

CEPDAOCOMREDISantesDeIrNoBanco()

tentarecuperardoredis;

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

OQUETEMDEBOM?

temosumcache:)

OQUETEMDERUIM?

acoplamento:(umaclasseextra;@

QUEMPODERÁNOSDEFENDER?

AOPaspectorientedprogramming

MASOQUEÉAOPMESMO?

SQL+REDIS+AOP

Lembrando,estamosresolvendo:acoplamento:(umaclasseextra;@

CepAopTest.java

OQUETEMDEBOM?

únicocódigoparatodos:Dpoucoacoplamento;P

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

SQL+REDIS+AOP+@ANNOTATION

=POWER

SQL+REDIS+AOP+@ANNOTATION

CepAopTest.javaRedisAnnotationAspect.java

OQUETEMDEBOM?

únicocódigoparatodos:Dpoucoacoplamento;Pexpireseoutrasfeatures=)

OQUETEMDERUIM?nãosei,maspodeficarmelhor!

ESEAFONTEDEDADOSCAIR?

webservice

bancodedados

COMOOCACHEPODENOSAJUDAR?emvezdeguardarmosapenasoobjetonoredis

NÓSGUARDAMOSUMENVELOPEquetemoobjetodentro!:D

SQL+REDIS+AOP+@ANNOTATION+HA

RedisAnnotationHAAspect.java

ÉCERTOFAZERISSO?

AGORAQUEAGENTEFEZTUDOISSO...

PorquenãodeixartodaabasedeCEPsnoRedis?

Éconfiável?

OUTRASESTRUTURASCOMREDIS

HASHES

LISTS

SETS

SORTEDSETS

+ =

Obrigado!

Dúvidas?:)

RobertoMarinrobertomarin@gmail.com