7 Stimmen

Unterschied zwischen memcache und python dictionary

In meinem aktuellen Projekt verwende ich Memcache, um Schlüssel-Wert-Paare zu speichern, aber da die Kommunikation über den Socket zwischen meinem Prozess und dem Memcache erfolgt, kommt es zu großen Latenzen. Wir haben uns für Memcache entschieden, weil wir eine große Menge an Schlüssel-Wert-Paaren speichern mussten. Aber jetzt möchte ich das Wörterbuch als globale Datenstruktur in meinem Prozess speichern. Ist das eine gute Sache? Denn das Wörterbuch wird im Adressraum des Prozesses gespeichert werden. Vorschläge bitte....

10voto

dlev Punkte 47336

Der übliche Grund für die Verwendung von Memcached ist, dass Sie vertreiben den Cache auf mehrere Rechner zu verteilen, mit dem Ziel, sowohl die Daten verfügbar auf allen Rechnern, wobei auch die Lagerung von allen Maschinen. Wenn diese Anforderungen für Sie nicht zutreffen und Sie die zwischengespeicherten Daten nur auf einem einzigen Rechner benötigen, dann bietet Ihnen memcached nicht allzu viel. In diesem Fall könnte es eine gute Idee sein, das Wörterbuch in Ihren lokalen Prozess zu verschieben.

6voto

Dustin Punkte 85400

Ich schrieb eine ausführliche Antwort auf der "Über"-Seite von memcached zu finden. Ich habe Bilder gemalt und alles.

Zusammengefasst: Wenn Sie mehr als einen Prozess haben, wird Ihnen das Wörterbuch nicht helfen. Wenn Sie mehr als einen Prozess/Computer haben, werden Sie tonnenweise Speicher verbrauchen, der auf großartige Weise wiederverwendet werden könnte, wodurch Sie viel Geld sparen und mehr größere Dinge bekommen.

1voto

YOU Punkte 113320

Wenn Ihre Daten nicht so groß sind, können Sie Ihr Python-Wörterbuch einfach mit cPickle.dump oder marshal.dump in Dateien auslagern und mit cPickle.load oder marshal.load wieder aus der Datei laden. Wenn Sie sich um den Speicherplatz sorgen müssen, können Sie bz2 oder gzip zum Komprimieren/Dekomprimieren während des Einlesens/Rückschreibens der Datei verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X