Gibt es einen einbindbaren Schlüssel / Wert-Speicher für Ruby?

8

Ich brauche einen schnellen und zuverlässigen Schlüssel-Wert-Speicher für Ruby. Gibt es sowas schon?

Voraussetzung ist, dass es vollständig innerhalb des Ruby-Prozesses läuft und keine externen Prozesse benötigt.
Es kann bei expliziten Festplattenspülungen in-memory sein.
Es muss einen minimalen Wert für die Schlüsselabrufzeiten haben, die Schreibzeiten sind möglicherweise nicht so gut.
Die Menge der gespeicherten Daten wird nicht schrecklich sein, ungefähr einige hunderttausend Schlüssel, jeder mit ~ 1kb Textwert.

    
Cyryl Płotnicki 14.11.2012, 18:47
quelle

7 Antworten

3

Es stellt sich heraus, dass die beste Option für mich darin bestand, plain Hash zusammen mit Marshal zu verwenden, um es auf die Festplatte zu serialisieren YAML ist definitiv zu langsam für diese Anzahl von Objekten.
Danke an @ ian-armit für die Stärkung meines Vertrauens in die Kern-Ruby-Bibliotheken.

    
Cyryl Płotnicki 14.11.2012, 20:15
quelle
4

Sie könnten auch Moneta ausprobieren, mit dem Sie Ihren eigenen Schlüssel / Wert-Speicher in einem Ruby-Prozess eingebettet erstellen können.

>     
Daniel 31.12.2012 03:06
quelle
2

Wie DBM? Ссылка

(Füller für Spambot)

Die DBM-Klasse stellt einen Wrapper für eine Unix-artige dbm- oder Database Manager-Bibliothek bereit.

Dbm-Datenbanken haben keine Tabellen oder Spalten; Sie sind einfache Schlüssel-Wert-Datenspeicher, wie ein Ruby-Hash, außer dass sie nicht im RAM resident sind. Schlüssel und Werte müssen Zeichenfolgen sein.

    
Philip Hallstrom 14.11.2012 18:49
quelle
1

Sie könnten versuchen, Oria: Ссылка

Oria (oh-rye-uh) ist ein in-memory, Ruby-basierter, Key-Value Store ohne Konfiguration. Es wurde entwickelt, um moderate Datenmengen schnell und einfach zu verarbeiten, ohne dass es zu Problemen bei der Bereitstellung oder zu Problemen mit dem Server kommt. Es verwendet EventMachine, um eine Netzwerkschnittstelle zu einem semi-persistenten Speicher bereitzustellen, und schreibt die speicherinternen Daten asynchron in YAML-Dateien.

    
brentmc79 15.11.2012 05:29
quelle
0

Sehen Sie sich PStore an. Nicht sicher, ob es schnell genug ist.

    
Miguel Ping 27.01.2013 19:00
quelle
0

Tagesanbruch ist eine nette neue Option. Daten werden in einer Tabelle im Speicher gespeichert, so dass Ruby-Feinheiten verfügbar sind (jeweils, filter, mapping, reduce usw.) und scheinbar schneller als pstore oder dbm sind.

Weitere Informationen finden Sie in diesem Blogpost .

    
gnrfan 01.02.2013 11:49
quelle
0

Es gibt LevelDB , hier ist die .

    
captainpete 19.04.2013 03:12
quelle

Tags und Links