Frage

So bin ich an verschiedenen Schlüssel suchen: Wert (in dem Wert entweder streng ein einzelner Wert oder möglicherweise ein Objekt) speichert für die Verwendung mit Python und haben ein paar versprechendsten gefunden. Ich habe keine spezifische Anforderung, als der noch, weil ich in der Evaluierungsphase bin. Ich suche, was gut, was schlecht ist, was sind die Eckfällen diese Dinge gut umgehen oder nicht, etc. Ich bin sicher, dass einige von euch schon versucht, sie haben, so würde ich gerne Ihre Ergebnisse / Probleme hören /usw. auf den verschiedenen Schlüssel: Wertspeicher mit Python. Ich suche in erster Linie an:

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

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

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

Lightcloud - http://opensource.plurk.com/LightCloud/ Basierend auf Tokyo Tyrant, geschrieben in Python

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

memcachedb - http://memcachedb.org/

So begann ich Benchmarking (einfach Schlüssel einsetzen und sie zu lesen) eine einfache Zählung mit den Zifferntasten zu erzeugen und einen Wert von „Einer kurzen Textzeichenfolge“:

Memcached: CentOS 5.3 / python-2.4.3-24.el5_3.6, libevent 1.4.12 stabil, Memcached 1.4.2 mit den Standardeinstellungen, 1 Gig Speicher, 14.000 Einsätze pro Sekunde, 16.000 Sekunden zu lesen. Keine wirkliche Optimierung, schön.

memcachedb Ansprüche in der Größenordnung von 17.000 bis 23.000 Einsätzen pro Sekunde, 44.000 bis 64.000 Lesevorgänge pro Sekunde.

Ich frage mich auch, wie die anderen stapeln Geschwindigkeit weise.

War es hilfreich?

Lösung

Das meist hängt von Ihrem Bedarf.

Lesen Sie Caveats der Auswertung von Datenbanken verstehen, wie sie zu bewerten.

Andere Tipps

shelve

(dictonaris in der Datei / Standard Python-Modul speichert)

ZODB - persisatnce Objektdatenbank (Python-Objekte Datenbank, keine SQL)

Weitere persistance Werkzeuge: http://wiki.python.org/moin/PersistenceTools

Meine 5 Cent:

Sie benötigen verteilen Systeme mit Tera Byte großen Daten oder massiver Schreibleistung?

Nun, sie müssen Sie eine der großen Schlüssel: Wert / BigTable / Dynamo Art Dinge. Das würde von Cassandra, Tokyo Tyrant, Redis usw. müssen Sie sicherstellen, dass die Client-Bibliothek unterstützt sharding, so dass Sie mehrere Datenbanken zu schreiben haben. Welches hier verwenden kann nur von Ihnen entschieden werden, nachdem sie mit Daten zu testen, die aussieht wie, was Sie denken, Sie brauchen.

Sie müssen Sie die Daten aus anderen Systemen / Sprachen als Python zugänglich sein?

Da diese Datenbanken keine Struktur, um ihre Daten überhaupt, wenn es von anderen Sprachen / Kunden zugänglich ist, das Sie hängen davon ab, was Sie speichern darin. Aber wenn Sie brauchen diese CouchDB ist eine gute Wahl, da sie es Daten ein JSON-Dokumente speichert, so dass Sie die Interoperabilität erhalten. Wie gut CouchDB auf wirklich massive Daten und sharding ist allerdings unklar.

Sie benötigen weder eine Interoperabilität mit anderen Sprachen als Python oder verteilten Multi-Server-Speicher?

Mit ZODB.

Wie wäre es Amazon SimpleDB?

Es ist eine Open-Source-Python-Bibliothek namens Boto für Python Amazon Web Services Schnittstelle.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top