Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Alternativen zu verschachtelten Strukturen in Redis?

Sie haben grundsätzlich zwei Strategien:

  • Sie können Ihre komplexen Objekte serialisieren und als Zeichenfolgen speichern. Als Serialisierungsformat empfehlen wir json oder msgpack. Dies ist einfach genug, um von den meisten clientseitigen Sprachen aus zu manipulieren. Wenn serverseitiger Zugriff erforderlich ist, kann ein serverseitiges Lua-Skript solche Objekte problemlos codieren/decodieren, da Redis mit msgpack- und json-Unterstützung für Lua kompiliert ist.

  • Sie können Ihre Objekte in verschiedene Tonarten aufteilen. Anstatt user:id und eine komplexe Datenstruktur für diese ID zu speichern, können Sie mehrere Schlüssel wie user:id, user:id:address_list, user:id:document_lists usw. speichern. EXEC-Blöcke können verwendet werden, um die Datenkonsistenz zu gewährleisten und die Roundtrips zu aggregieren.

Siehe ein einfaches Beispiel in dieser Antwort:

Funktioniert der LPUSH-Befehl bei einem Datensatz, der von JSON initialisiert wurde?

Schließlich ist Redis keine dokumentenorientierte Datenbank. Wenn Sie wirklich viele komplexe Dokumente haben, könnten Sie vielleicht besser mit Lösungen wie MongoDB, ArangoDB, CouchDB, Couchbase usw. bedient werden.