Qual é a maneira mais fácil de simular uma tabela de banco de dados com um índice em um valor de chave loja?
Pergunta
Qual é a maneira mais fácil de simular uma tabela de banco de dados com um índice em um valor de chave loja?O valor da chave loja NÃO tem variou consultas e NÃO ordenou chaves.
As coisas que eu quero simular (em ordem de prioridade):
- Criar tabelas
- Adicionar colunas
- Criar índices
- Consulta com base na chave primária
- Consulta com base na arbitrário colunas
Solução
Se você usar Redis (um avançadas de armazenamento de chave-valor que suporta strings, listas, conjuntos, etc.) Então, isto é muito fácil.Eu já desenvolveram uma C# redis cliente que tem suporte nativo para armazenar POCO de dados de modelos.Exatamente estas mesmas POCO pode ser usado por OrmLite para armazená-lo em um RDBMS.
Pela maneira como o Redis é rápido, eu tenho um referência que armazena e recupera todo o Banco de dados Northwind (3202 registros) no âmbito de 1.2 segundos (correndo dentro de um UnitTest em um 3yo iMac).
Eu armazenamento de entidades de duas maneiras
- Entidades distintas, onde eu combinar o tipo de Classe e de nome de Chave Primária para criar uma chave exclusiva e.g.
urn:user:1
- Eu, então, manter um conjunto separado de chaves primárias (em um Redis Conjunto) para acompanhar todas as minhas entidades, usando uma chave como:
ids:user
- Eu, então, manter um conjunto separado de chaves primárias (em um Redis Conjunto) para acompanhar todas as minhas entidades, usando uma chave como:
- Em um Redis do lado do servidor de lista - que funciona muito bem como uma tabela com suporte a paginação, usando uma chave como:
lists:user
Outras dicas
Use um hashtable ou dicionário. Se você deseja valores -chave exclusivos, pode usar um GUID ou HashCode.
A loja de valores-chave deve apoiar o pedido das chaves e o acesso à distância às teclas.
Então você deve criar dois dicionários:
id -> payload
e
col1, id -> NULL
, Onde payload
deve conter todos os dados que a tabela de banco de dados conteria e as chaves do segundo dicionário devem conter os valores de (col1, id)
de cada entrada do primeiro dicionário.