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

Redis-Set vs. Hash

Redis-Hashes eignen sich gut zum Speichern komplexerer Daten, wie Sie in Ihrer Frage vorschlagen. Ich verwende sie genau dafür – um Objekte mit mehreren Attributen zu speichern, die zwischengespeichert werden müssen (insbesondere Bestandsdaten für ein bestimmtes Produkt auf einer E-Commerce-Website). Sicher, ich könnte eine verkettete Zeichenfolge verwenden - aber das fügt meinem Client-Code unnötige Komplexität hinzu, und das Aktualisieren eines einzelnen Felds ist nicht möglich.

Sie könnten Recht haben – die Tutorials stammen möglicherweise einfach aus der Zeit vor der Einführung von Hashes. Sie wurden eindeutig zum Speichern von Objektdarstellungen entwickelt:http://oldblog.antirez.com/post/redis-weekly-update-1.html

Ich nehme an, ein Problem wäre die Anzahl der Befehle, die Redis bedienen muss, wenn ein neues Element eingefügt wird (n Anzahl der Befehle, wobei n die Anzahl der Felder im Hash ist), im Vergleich zu einem einfachen String SET-Befehl. Ich habe festgestellt, dass dies noch kein Problem bei einem Dienst ist, der Redis etwa 1 Million Mal pro Tag trifft. Die Verwendung der richtigen Datenstruktur ist mir wichtiger als eine vernachlässigbare Auswirkung auf die Leistung.

(Siehe auch meinen Kommentar zu Redis-Sets vs. Redis-Strings – ich glaube, Ihre Frage bezieht sich auf Strings, aber korrigieren Sie mich, wenn ich falsch liege!)