redis-reference
Agenda
- Problema
- Solução
- Implementação

Arquitetura
Premissas
- Fonte final da informação
- Fonte atualizada
Por que?
- Rápido
- Fácil de administrar
Design
schema v 0.1
[{id_produto: 100, url: "//dominio.com/produto/100", nome: "Nome Produto0"},
{id_produto: 101, url: "//dominio.com/produto/101", nome: "Nome Produto1"},
{id_produto: 102, url: "//dominio.com/produto/102", nome: "Nome Produto2"},
{id_produto: 103, url: "//dominio.com/produto/103", nome: "Nome Produto3"},
{id_produto: 104, url: "//dominio.com/produto/104", nome: "Nome Produto4"},
{id_produto: 105, url: "//dominio.com/produto/105", nome: "Nome Produto5"},
{id_produto: 106, url: "//dominio.com/produto/106", nome: "Nome Produto6"},
{id_produto: 107, url: "//dominio.com/produto/107", nome: "Nome Produto7"},
{id_produto: 108, url: "//dominio.com/produto/108", nome: "Nome Produto8"},
{id_produto: 109, url: "//dominio.com/produto/109", nome: "Nome Produto9"}]userid:cid:recs =[{id_produto: 100, url: "//dominio.com/produto/100", nome: "Nome Produto0"},
{id_produto: 101, url: "//dominio.com/produto/101", nome: "Nome Produto1"},
{id_produto: 102, url: "//dominio.com/produto/102", nome: "Nome Produto2"},
{id_produto: 103, url: "//dominio.com/produto/103", nome: "Nome Produto3"},
{id_produto: 104, url: "//dominio.com/produto/104", nome: "Nome Produto4"},
{id_produto: 105, url: "//dominio.com/produto/105", nome: "Nome Produto5"},
{id_produto: 106, url: "//dominio.com/produto/106", nome: "Nome Produto6"},
{id_produto: 107, url: "//dominio.com/produto/107", nome: "Nome Produto7"},
{id_produto: 108, url: "//dominio.com/produto/108", nome: "Nome Produto8"},
{id_produto: 109, url: "//dominio.com/produto/109", nome: "Nome Produto9"}]userid:cid:recs =[{id_produto: 100, url: "//dominio.com/produto/100", nome: "Nome Produto0"},
{id_produto: 101, url: "//dominio.com/produto/101", nome: "Nome Produto1"},
{id_produto: 102, url: "//dominio.com/produto/102", nome: "Nome Produto2"},
{id_produto: 103, url: "//dominio.com/produto/103", nome: "Nome Produto3"},
{id_produto: 104, url: "//dominio.com/produto/104", nome: "Nome Produto4"},
{id_produto: 105, url: "//dominio.com/produto/105", nome: "Nome Produto5"},
{id_produto: 106, url: "//dominio.com/produto/106", nome: "Nome Produto6"},
{id_produto: 107, url: "//dominio.com/produto/107", nome: "Nome Produto7"},
{id_produto: 108, url: "//dominio.com/produto/108", nome: "Nome Produto8"},
{id_produto: 109, url: "//dominio.com/produto/109", nome: "Nome Produto9"}]userid:cid:recs =Características
- Trivial de fazer
- Desperdiça espaço
- Dificulta atualização
Características
- Trivial de fazer
- Desperdiça espaço
- Dificulta atualização
Espaço

Atualização

Espaço

Atualização

Opções
- No cliente Vs Nativa
No cliente
import redis
c = redis.StrictRedis(host='127.0.0.1', port=6379,
db=0)
recs = c.get('user') # user=1,2,3,4,5,6,7,8,9,10
ids = recs.split(',')
all = ",".join([c.get('oid:' + k) for k in ids])
No cliente
import redis
c = redis.StrictRedis(host='127.0.0.1', port=6379,
db=0)
recs = c.get('user') # user=1,2,3,4,5,6,7,8,9,10
ids = recs.split(',')
all = ",".join([c.get('oid:' + k) for k in ids])
11 Gets
Nativa
import redis
c = redis.StrictRedis(host='127.0.0.1', port=6379,
db=0)
all = c.execute_command('reference.query oid user')Nativa
import redis
c = redis.StrictRedis(host='127.0.0.1', port=6379,
db=0)
all = c.execute_command('reference.query oid user')1 Get
schema v 0.2
user1 = 100,101,102,103,104,105,106,107,108,109
user2 = 109,107,108,101,104,105,106,107,103,100
...oid:100 = {id_produto: 100, url: "//dominio.com/produto/100", nome: "Nome Produto0"}
oid:101 = {id_produto: 101, url: "//dominio.com/produto/101", nome: "Nome Produto1"}
oid:102 = {id_produto: 102, url: "//dominio.com/produto/102", nome: "Nome Produto2"}
oid:103 = {id_produto: 103, url: "//dominio.com/produto/103", nome: "Nome Produto3"}
oid:104 = {id_produto: 104, url: "//dominio.com/produto/104", nome: "Nome Produto4"}
oid:105 = {id_produto: 105, url: "//dominio.com/produto/105", nome: "Nome Produto5"}
oid:106 = {id_produto: 106, url: "//dominio.com/produto/106", nome: "Nome Produto6"}
oid:107 = {id_produto: 107, url: "//dominio.com/produto/107", nome: "Nome Produto7"}
oid:108 = {id_produto: 108, url: "//dominio.com/produto/108", nome: "Nome Produto8"}
oid:109 = {id_produto: 109, url: "//dominio.com/produto/109", nome: "Nome Produto9"}Nativa
- Economia de memória
- Atualização em 1 ponto
Fim
@prognoos
Redis - reference mod
By Felipe Cruz
Redis - reference mod
- 602