Ich habe einen einfachen Redis-Listenschlüssel => "vendor_id"
Jetzt möchte ich nur noch den gesamten Wert der Liste abrufen, ohne den Wert tatsächlich zu wiederholen oder aus der Liste zu entfernen
Beispiel zum Abrufen des gesamten Werts aus einer Liste Jetzt habe ich über die Redis-Länge iteriert
element = []
0.upto(redis.llen("supplier_id")-1) do |index|
element << redis.lindex("supplier_id",index)
end
Kann dies ohne die Iteration mit besserer Redis-Modellierung erfolgen ? kann jemand vorschlagen
Antworten:
Um alle Elemente einer Liste mit Redis abzurufen, müssen Sie nicht jedes einzelne Element iterieren und abrufen. Es wäre wirklich ineffizient.
Sie müssen nur den Befehl LRANGE verwenden , um alle Elemente auf einmal abzurufen.
gibt alle Elemente der Liste zurück, ohne die Liste selbst zu ändern.
quelle
Ihre Frage ist mir etwas unklar, aber wenn die lieferanten_id numerisch ist, warum nicht eine verwenden
ZSET
?Fügen Sie Ihre Werte wie folgt hinzu:
Sie können dann alles bis zu (aber ohne Lieferanten drei) wie folgt entfernen:
oder
Das gibt Ihnen auch einen sehr schnellen Zugriff (nach Lieferanten-ID), wenn Sie nur daraus lesen möchten.
Hoffentlich hilft das!
quelle