Chave de Acesso 8208 velocidade alta & # com NoSQL
Key # 8208 de valor lojas em NoSQL são todos sobre a velocidade. Você pode usar várias técnicas para maximizar a essa velocidade, a partir de dados de cache, a ter várias cópias dos dados, ou utilizando as estruturas de armazenamento mais adequados.
Menu
armazenar dados na memória
Como os dados são facilmente acessados quando ele é armazenado na memória de acesso aleatório (RAM), a escolha de uma chave # loja 8208-valor que armazena dados na RAM pode acelerar significativamente o seu acesso aos dados, ainda que ao preço de custos de servidor mais elevados.
Muitas vezes, porém, essa compensação vale a pena fazer. Você pode facilmente calcular que porcentagem de seus dados armazenados é solicitado com frequência. Se você sabe que cinco por cento é geralmente solicitado a cada poucos minutos, em seguida, tomar cinco por cento do seu tamanho de dados e adicionar esse número como espaço de memória RAM de reposição através de seus servidores de banco de dados.
Tenha em mente que o sistema operacional, outras aplicações, eo servidor de banco de dados têm requisitos de memória, também.
Replicação de dados aos escravos
Em # lojas principais 8208 de valor, uma chave particular é armazenada em um dos servidores no cluster. Este processo é chamado particionamento chave. Isto significa que, se essa chave é constantemente solicitado, esse nó vai receber a maior parte dos pedidos. Este nó, portanto, será mais lenta do que a velocidade média pedido, potencialmente afetando a qualidade do serviço para os usuários.
Para evitar essa situação, alguns tecla # 8208 de valor lojas adicionando suporte ler # 8208-apenas réplicas, também referidos como escravos. Redis, Riak, e Aerospike são bons exemplos. Replicação permite que a chave para ser armazenado várias vezes em vários servidores, o que aumenta a velocidade de resposta, mas ao custo de mais hardware.
Alguns # 8208 de valor chave armazena garantir que as réplicas da chave terá sempre o mesmo valor que o mestre. Esta garantia é chamado a ser totalmente consistente. Se uma atualização acontece no servidor mestre segurando a chave, todas as réplicas são garantidos para ser atualizado.
Nem todas as Key # 8208 de valor lojas garantir este status (Riak, por exemplo), por isso, se é importante estar atualizado para o milissegundo, em seguida, escolher um banco de dados cujo réplicas são totalmente consistentes (como Aerospike).
modelagem de dados em # lojas principais 8208 de valor
Muitos tecla # 8208 de valor lojas apoiar apenas estruturas básicas para os seus tipos de valor, deixando o programador da aplicação com o trabalho de interpretação dos dados. Simples tipo de dados de suporte inclui tipicamente strings, inteiros, JSON, e valores binários.
Para muitos casos de utilização, este funciona bem, mas por vezes um pouco mais o acesso aos dados granular é útil. Redis, por exemplo, suporta os seguintes tipos de valores de dados:
Corda
Lista
Conjunto
conjunto classificado
mapas hash
matrizes bit
toras Hyperlog
conjuntos classificados podem ser consultados por faixas de valores correspondentes - bem como consultar um índice de valores organizadas por data, que é muito útil para a busca de um subconjunto de dados digitados.
Operando em dados
Redis inclui operações para aumentar e diminuir os valores da chave diretamente, sem ter que fazer uma leitura # 8208-modificar # 8208-update (RMU) conjunto de etapas. Você pode fazê-lo dentro de uma única transação para garantir que nenhum outro aplicativo altera o valor durante uma atualização. Estas operações específicas 8208 de tipo de dados # incluem adicionar e remover itens a listas e conjuntos também.
Você pode até mesmo fornecer a funcionalidade de preenchimento automático na interface do usuário do aplicativo usando o comando Redis ZRANGEBYLEX. Esse comando recupera um conjunto de chaves que corresponde parcialmente uma corda. Então, se você digitar # 147 NoSQL para # 148- na barra de pesquisa de uma aplicação construída sobre Redis, você veria a sugestão # 147 NoSQL For Dummies # 148.;
avaliando Redis
Redis se orgulha de ser uma chave # loja 8208 de valor muito leve, mas extremamente rápido. Ele foi originalmente projetado para ser um no # 8208-memory key # loja 8208 de valor, mas agora possui armazenamento de dados em disco # 8208-based.
Você pode usar o Redis para proteger os dados, permitindo AOF (anexar único arquivo) Modo e instruindo Redis para forçar dados em disco em cada consulta (conhecido como forçado fsync rubor). AOF faz abrandar as gravações, é claro, mas ele fornece um nível mais elevado de durabilidade para os dados. Esteja ciente, porém, que ainda é possível perder até um segundo de comandos.
Além disso, Redis adicionou recentemente suporte para clustering. Na verdade, no momento da redação deste texto, suporte a clusters de Redis está em fase de testes beta. Felizmente, Redis usa um compartilhada # modelo de cluster 8208-nada, com os mestres para chaves particulares e escravos que nunca são escritos diretamente para por um cliente-somente o mestre faz isso. Fornecendo # 8208-nada agrupamento compartilhada deve tornar mais fácil para Redis para implementar cluster confiável do que para bancos de dados que permitem que escreve a todas as réplicas.
Se você quiser um muito alto # 8208-velocidade, no # camada de cache 8208 memória na frente de outro banco de dados - MongoDB ou Riak são comumente usados com Redis - então avaliar Redis como uma opção. Como suporte para o agrupamento e os dados durabilidade evolui, talvez Redis pode ultrapassar outros bancos de dados # 8208-end.