2013-03-12 14 views
16

Ich verwende Redis derzeit für meine App, und seine Funktionen sind wirklich hervorragend für meine Anwendung (Listen, Sets, sortierte Sets usw.).Auf der Suche nach einer Festplatte-basierte Redis-ähnliche Datenbank

Meine Anwendung hängt stark von sortierten Sätzen, Listen, Sets ab. Und die damit verbundenen Funktionen (drücken Sie auf eine Liste, Liste abrufen, Vereinigung von Sätzen etc. Das einzige Problem, mit dem ich gerade konfrontiert bin, ist, dass meine Daten groß sind, und die meisten meiner Daten müssen nicht im Speicher sein, und ich möchte speichert sie auf der Festplatte.

** ich brauche eine on-Disk- Datenbank mit redis Datenstrukturen **

ich über Cassandra lesen, aber ich bin nicht sicher, ob es sortierten Sets, Sätzen, Listen unterstützt. Oder zumindest, wenn es der Fall ist, konnte ich nicht Methoden finden sie den Weg Redis tut zu manipulieren.

Dank.

+0

speichert nicht redis die Daten auf der Festplatte? meins tut. – akonsu

+1

tut es. Aber wenn es im Arbeitsspeicher ausgeführt wird, können Sie die Größe des Arbeitsspeichers nicht überschreiten. Ich möchte Daten speichern, die die Speichergröße auf der Festplatte überschreiten. – Pacemaker

+4

Es ist einfach nicht praktikabel, viele der Funktionen von redis in einem plattenbasierten Datenbanksystem zu haben, da sie nicht auf die gleiche Weise gespeichert werden können, wie sie im Speicher sind. Sie könnten beispielsweise keine O (1) Nachschlagezeiten haben (eine indizierte einfache Auswahlabfrage in SQL ist zum Beispiel normalerweise O (log (n))). Viele der Features, die Sie suchen, sind jedoch in vielen SQL-Datenbanken verfügbar, die im Allgemeinen festplattenbasiert sind (eine Tabelle mit einer einzelnen Spalte, der Primärschlüssel, ist ein Satz - viele Unterstützungsgewerkschaften der DB usw.). –

Antwort

7

https://github.com/yinqiwen/ardb ein anderer REDIS Protokoll Ersatz mit LMDB, RocksDB und LevelDB Disk-basierten Backend

schöner Benchmarks

+0

ARDB ist nicht stabil für Produktion env. – yegong

+0

@yegong wie hast du das herausgefunden? Ich sehe nirgends, dass ARDB nicht produktionsbereit ist. – Peeyush

+0

https://github.com/siddontang/ledisdb ist es schon eine schöne Disk-basierten Redis Ersatz – Slach

-1

Ich ermutige Sie, Cassandra zu lernen, während es einige Dinge ähnlich wie Schlüssel/Wert und Sätze hat, ist es sehr verschieden von Redis.

Wir bewegen derzeit ein Projekt von Redis (wir verwenden sadd/spop) zu TokyoCabinet/KyotoCabinet über Memcached-Protokoll. Für den Moment Dinge sieht gut aus und sehr bald werde ich die lib auf Github veröffentlichen - hier verfügbar sein wird:

https://github.com/nmmmnu

und Projekt Simple Message Queue aufgerufen werden. Es unterstützt nur sadd/spop/sismember. Auch in Python können Sie anstelle eines Redis-Objekts ein neues Objekt verwenden, jedoch nur für diese drei Befehle.

Hoffe, das hilft.


aktualisieren 2014,07:

Hier ist das Projekt über die ich sprechen.

https://github.com/nmmmnu/MessageQueue

Es implementiert sowohl Redis und Memcached-Protokolle. Für das Backend verwendet es den Speicher ndb/mdb oder berkeley db.

+0

Ich verstehe nicht, warum jemand -1 tun wird. Cassandra ist fast wie redis und mein Projekt ist jetzt abgeschlossen und Sie können es hier sehen: https://github.com/nmmmnu/MessageQueue - sowohl redis und memcached Protokolle sind implementiert und funktioniert. Sicher, meine MessageQueue kann nicht direkt verwendet werden, aber Sie können die Protokollklasse erhalten und den Rest machen. – Nick

+1

Ich habe es downvoted, weil Sie feststellen, dass es keine solchen Datenbanken gibt, wenn es solche gibt. Tatsächlich gibt es sogar protokollkompatible Drop-In-Ersetzungen. Das könnte also nicht weiter von der Wahrheit entfernt sein. Ich habe den Downvote entfernt, bitte entfernen Sie den ersten Satz :) –

5

Es gibt zahlreiche On-Disk-Datenbanken mit Redis artigen Datenstrukturen oder sogar für Redis zu sein Drop-in-Protokoll kompatiblen Ersatz versuchen.

Es gibt ausgezeichnete Empfehlungen in "Is there something like Redis DB, but not limited with RAM size?" - schade, dass die Gemeinschaft solche Fragen für off-topic hält.

Insbesondere ist eine aktiv gehaltene Redis-ähnliche Datenbank auf der Festplatte (aber nicht direkt kompatibel), und Ardb ist ein aktiv gewarteter Ersatz für Redis, der die Daten auf der Festplatte speichert. Haftungsausschluss: Ich habe (noch) keines von beiden benutzt.

+0

Danke für die gute Antwort. Ich kann nicht sehen, wie diese Fragen off-topic sind. Ich finde die Struktur von redisis für viele Anwendungen hervorragend, so dass es notwendig ist, eine ähnliche Datenbank auf der Festplatte zu haben. – Pacemaker

+0

Ich bin der Autor von SSDB (eine Redis-Like-on-Disk-Datenbank), viele Unternehmen hatten ihre Redis-Instanzen durch SSDB ersetzt, einschließlich QIHU, BIDU. – ideawu

Verwandte Themen