Pergunta

Então, eu estou olhando para vários chave: valor (onde valor é estritamente um único valor ou possivelmente um objeto) lojas para uso com o Python, e de ter encontrado alguns dos mais promissores. Eu não tenho nenhuma exigência específica como ainda porque estou na fase de avaliação. Eu estou procurando o que é bom, o que é ruim, quais são os casos de canto essas coisas lidar bem ou não fazer, etc. Eu tenho certeza que alguns de vocês já tentou-los para que eu adoraria ouvir suas descobertas / problemas / etc. na vária chave: lojas de valor com Python. Eu estou olhando principalmente em:

memcached - http://www.danga.com/memcached/ python clientes: http://pypi.python.org/pypi/python-memcached/1.40 http://www.tummy.com/Community/software/python-memcached/

CouchDB - http://couchdb.apache.org/ python clientes: http://code.google.com/p/couchdb-python/

Tokyo Tyrant - http://1978th.net/tokyotyrant/ python clientes: http://code.google.com/p/pytyrant/

Lightcloud - http://opensource.plurk.com/LightCloud/ Baseado em Tokyo Tyrant, escrito em Python

Redis - http://redis.io/ python clientes: http://pypi.python.org/pypi/txredis/0.1.1

MemcacheDB - http://memcachedb.org/

Então eu comecei a aferição (simplesmente inserindo chaves e lê-los), utilizando uma contagem simples para gerar teclas numéricas e um valor de "A pequena cadeia de texto":

memcached: CentOS 5.3 / python-2.4.3-24.el5_3.6, libevent 1.4.12 estável, memcached 1.4.2 com as configurações padrão, memória de 1 giga, 14.000 inserções por segundo, 16.000 segundos para ler. Sem otimização real, agradável.

reivindicações memcachedb da ordem de 17.000 a 23.000 inserções por segundo, 44.000 a 64.000 leituras por segundo.

Eu também estou querendo saber como os outros se comportam velocidade sábio.

Foi útil?

Solução

Isso depende em grande parte a sua necessidade.

Leia Advertências de Bases de Dados Avaliando para entender como avaliá-los.

Outras dicas

prateleira (armazenamento dictonaris em arquivo / módulo de python padrão)

ZODB - banco de dados objeto persisatnce (python objetos de banco de dados, não SQL)

Mais ferramentas Persistência: http://wiki.python.org/moin/PersistenceTools

As minhas 5 centavos:

Você precisa de sistemas distribuídos com byte tera dimensionado dados ou desempenho de gravação em massa?

Bem, eles você precisa de um a grande chave: valor / BigTable / tipo Dynamo coisas. Isso por Cassandra, Tokyo Tyrant, Redis, etc. Você precisa ter certeza de que os suportes da biblioteca cliente sharding assim você pode ter vários bancos de dados para gravar. Qual usar aqui só pode ser decidido por você depois de testar com os dados que se parece com o que você acha que precisa.

Você precisa que os dados estejam acessíveis a partir de outros sistemas / idiomas além do Python?

Uma vez que esses bancos de dados não têm estrutura para seus dados em tudo, se é acessível a partir de outras linguagens / clientes que o seu depende do que você armazenar nele. Mas se você precisa deste CouchDB é uma boa escolha, uma vez que as armazena de dados de documentos JSON, de modo a obter a interoperabilidade. Como boa CouchDB é em dados realmente enormes e sharding é que não está claro.

Você precisa nem interoperabilidade com outros idiomas além do Python ou armazenamento multi-servidor distribuído?

Use ZODB.

Como cerca de Amazon SimpleDB?

Existe uma biblioteca python-fonte aberto chamado boto para python interface de serviços web da Amazon.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top