Em um artigo anterior, falei sobre o NoSQL e algumas ferramentas para serem usadas com ele. Neste artigo, daremos
uma olhada no MongoDB, no Redis e no Riak.
MongoDB
O MongoDB combina o melhor
dos armazenamentos chave-valor, documentos de bancos de dados, bancos de dados
(ou database?) de objeto e sistemas de gerenciamento de bancos de dados relacionais (RDBMS).
Isso significa que o MogoDB executa o sharding automaticamente (como com armazenamentos
chave-valor), permite documentos de schema dinâmicos baseados em JSON, e
oferece uma rica linguagem de query na forma de RDBMS. Além disso, o MongoDB oferece auto-sharding (o sharding de dados
novos e pré-existentes é feito automaticamente) e um recurso de
implementação MapReduce.
Dê uma olhada mais de perto no cluster
MongoDB, e você verá que ele é feito de vários tipos de servidores:
- Servidores shard
que armazenam dados - Servidores de
configuração que armazenam a configuração - Servidores
router que recebem e roteiam as solicitações - Uma thread de servidor usando MapReduce
Alguns fatos adicionais sobre
MongoDB: é uma ferramenta de armazenagem distribuída orientada a documentos e usa a linguagem de implementação C++. Com o
progresso do schema, documentos do tipo JSON são armazenados, e schemas
dinâmicos podem ser usados. Entre as companhias que usam o MongoDB encontramos: Shutterfly, Evite e The New York
Times. Impressionante! Uma das coisas bacanas das quais gosto a respeito desse
produto é a existência de uma interface web bastante boa, que permite
testar o MongoDB em seu browser – mas usando uma shell JavaScript.
Redis
O
Redis não é um simples armazenamento chave-valor, porque suporta uma
variedade de valores em diferentes estruturas de dados, tais como listas e
conjuntos de binary-safe strings, bem como
conjuntos ordenados, que contêm uma pontuação de números float. No ano passado,
o VMWare se tornou patrocinador do Redis.
Ele possui uma orientação
chave-valor, e sua linguagem de implementação é ANSI C. Entretanto, o Redis não
é distribuído. Sob seu schema, Redis oferece um armazenamento chave-valor,
usando um nome-chave de servidor para armazenar e recuperar valores. Como MongoDB,
o Redis tem uma lista impressionante de clientes – incluindo Python, Twisted
Python e a nova linguagem do
Google, Go. O Redis é open source, e há
uma página muito bacana que oferece um tutorial Redis que permite
experimentá-lo diretamente de seu browser usando JavaScript. Descubra-a em http://try.redis-db.com.
Basho Riak
Riak é um banco de dados
híbrido fabricado pela BashoTecnologies, mas é baseado no Amazon Dynamo.
Funciona como um banco de dados (tradução de database?) orientado para documentos, e também com
um armazenamento chave-valor distribuído. É tolerante a falhas e faz escalas
linearmente. É direcionado para uso em aplicativos web. Como o Cassandra, não
tem um controlador central, e assim não tem um ponto único de falhas.
O Riak é um armazenamento de
chaves/valor plenamente distribuído, e implementa o MapReduce.
O design do Riak inclui três
elementos básicos: buckets, chaves e valores. Os dados são organizados em
buckets, que são pouco mais do que flat namespaces para agrupar logicamente
pares chave/valor. Os buckets podem armazenar os dados diretamente ou através
de links para outro bucket. Todos os nós no cluster têm o mesmo papel. O
sharding de dados (existentes ou novos) é feito automaticamente entre os nós.
O Riak vem tanto em versão
comercial quanto em versão open source. Roda em Unix, mas não em sistemas
Windows. Ele é distribuído, um sistema tanto de documento quanto de
armazenamento chave-valor, e sua linguagem de implementação é Erland, juntamente como alguma coisa de C e
de JavaScript.
O Riak tem uma estrutura simples e não usa tipos de dados
específicos. Os valores associados às chaves são objetos. O
Riak interage com clientes via JSON sobre a interface HTTP; tem drivers para
Erlang, Python, Java, PHP, JavaScript e Ruby; e, finalmente, uma interface de
cliente que suporta o Protocol Buffers, do Google. A base de clientes do Riak
inclui a Comcast.
Essas informações foram úteis para você? Deixe sua resposta nos comentários.
?
Texto original disponível
em http://blog.monitis.com/index.php/2011/06/06/a-look-at-some-nosql-databases-mongodb-redis-and-basho-riak/