Question

J'examine donc divers types de clés: value (où valeur correspond strictement à une valeur unique ou éventuellement à un objet) à utiliser avec Python et en ont trouvé quelques-unes prometteuses. Je n'ai pas d'exigence spécifique pour l'instant car je suis en phase d'évaluation. Je cherche ce qui est bon, ce qui est mauvais, quels sont les cas où ces choses-là gèrent bien ou pas, etc. Je suis sûr que certains d'entre vous les ont déjà essayées, j'aimerais donc connaître vos conclusions / problèmes. /etc. sur les différentes clés: magasins de valeurs avec Python. Je regarde principalement à:

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

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

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

Lightcloud - http://opensource.plurk.com/LightCloud/ Basé sur Tokyo Tyrant, écrit en Python

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

MemcacheDB - http://memcachedb.org/

J'ai donc commencé l'analyse comparative (en insérant simplement des clés et en les lisant) en utilisant un compte simple pour générer des clés numériques et une valeur de "Une courte chaîne de texte":

memcached: CentOS 5.3 / python-2.4.3-24.el5_3.6, libevent 1.4.12-stable, memcached 1.4.2 avec paramètres par défaut, 1 Go de mémoire, 14 000 insertions par seconde, 16 000 secondes pour la lecture. Pas de réelle optimisation, sympa.

memcachedb revendications de l'ordre de 17 000 à 23 000 insertions par seconde, 44 000 à 64 000 lectures par seconde.

Je me demande aussi comment les autres se rangent en vitesse.

Était-ce utile?

La solution

Cela dépend principalement de vos besoins.

Lisez Mises en garde relatives à l'évaluation de bases de données à comprendre comment les évaluer.

Autres conseils

shelve (stockage de dictonaris dans un module python standard / fichier)

ZODB - Base de données d’objets persisatnce (base de données d’objets Python, pas de code SQL)

Plus d'outils de persistance: http://wiki.python.org/moin/PersistenceTools

Mes 5 cents:

Avez-vous besoin de systèmes distribués avec des données de la taille d’un tera octet ou des performances d’écriture massives?

Eh bien, il vous faut l’un des éléments clés: valeur / BigTable / type Dynamo. Cela se ferait par Cassandra, Tokyo Tyrant, Redis, etc. Vous devez vous assurer que la bibliothèque cliente prend en charge le sharding afin que vous puissiez avoir plusieurs bases de données sur lesquelles écrire. Lequel utiliser ici ne peut être choisi par vous qu'après des tests avec des données qui ressemblent à ce dont vous pensez avoir besoin.

Avez-vous besoin que les données soient accessibles depuis d'autres systèmes / langages que Python?

Étant donné que ces bases de données n’ont aucune structure, leurs données, si elles sont accessibles à partir d’autres langues / clients, dépendent des données que vous stockez. Mais si vous en avez besoin, CouchDB est un bon choix, car il stocke ses données dans des documents JSON, vous obtenez ainsi une interopérabilité. La qualité de CouchDB sur des données extrêmement volumineuses et le partage ne sont toutefois pas clairs.

N'avez-vous besoin ni d'interopérabilité avec d'autres langages que Python ou d'un stockage multi-serveur distribué?

Utilisez ZODB.

Qu'en est-il d'Amazon SimpleDB?

Il existe une bibliothèque open source python appelée boto pour l'interface entre les services Web Amazon python.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top