Pular para o conteúdo

Redis e MongoDB

Os dois que não são SQL: o que cada um resolve, o que não resolve, e por que o driver cabe em poucas linhas.

Os dois entram pela mesma porta (Forge.conectar) e respondem a perguntas diferentes das do SQL. Usá-los como banco principal é o erro mais caro dos dois.

Redis#

Memória, com persistência opcional. O que ele faz melhor que qualquer banco: expirar sozinho. Cache, sessão, limite de taxa, fila simples — tudo isso é um valor com prazo.

dataforge
adopt Arcane.Forge as Forge

// Comentado porque exige o conteiner:
//
//   r := Forge.conectar("redis://localhost:6379")
//   Forge.executar(r, "SET sessao:abc {\"id\": 7}")
//   Forge.executar(r, "EXPIRE sessao:abc 3600")
//   out Forge.consultar(r, "GET sessao:abc")
//
// O protocolo (RESP) e texto, e e por isso que o driver cabe em
// poucas linhas: cada comando e uma lista de strings, e cada
// resposta tem um prefixo de um caractere dizendo o que ela e.

out "veja o exemplo acima; ele precisa de um Redis no ar"
Use Redis paraNão use para
cache com prazoo dado que não pode ser perdido
sessãorelação entre entidades
limite de taxa compartilhado entre processosrelatório
fila simplesfila com garantia forte — isso é um broker

MongoDB#

Documentos, sem esquema declarado. O driver fala o wire protocol com BSON — e bson.py existe aqui pelo mesmo motivo dos outros: sem pymongo.

Use Mongo paraPense duas vezes
documento cuja forma varia de verdadedado com relações — join não é o forte dele
esquema que muda toda semana no começoquando a forma estabilizar, o SQL volta a ser melhor
agregação sobre eventostransação entre coleções

Continue em Cada motor e O banco em contêiner.