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

Warum gibt es KEYS- und ARGV-Arrays beim Aufrufen von Redis Lua-Skripten?

Alle Ihre Fragen werden beim EVAL beantwortet Seite, aber da du gefragt hast...:

Was ist der Unterschied?

KEYS wird verwendet, um Schlüsselnamen zu übergeben, während ARGS sollte für alles andere sein. Dies wird nicht unbedingt erzwungen (d.h. meistens wäre es in Ordnung, sie zu mischen), könnte aber zu potenziellen Problemen führen, wenn es nicht befolgt wird.

Wie behandelt Redis Werte im KEYS-Array?

Der Inhalt von KEYS werden überprüft, um sicherzustellen, dass alle Schlüssel für den Redis-Shard verfügbar sind, der das Skript ausführt. Dieser Mechanismus ist vorhanden, um das Ausführen von Skripts in einer Redis-Cluster-Bereitstellung zu ermöglichen.

Was ist, wenn ich in meinem Skript zur Laufzeit dynamisch generierte Schlüssel verwenden muss?

Siehe vorherige Antworten - das ist machbar, aber Sie würden gegen die Empfehlungen verstoßen. Ihr Skript kann sicher nur auf einer eigenständigen Redis-Instanz ausgeführt werden, und da dieses Verhalten nicht angegeben ist, kann es in zukünftigen Versionen brechen.