Nein, Sie können mit SETEX
keinen Hash erzeugen (was eine String-Methode ist). Sie können EXPIRE
aufrufen auf Hash-Schlüssel, aber das verfällt der gesamte Hash. Derzeit gibt es keine Unterstützung für den Ablauf einzelner Hash-Schlüssel/Wert-Paare.
Aktualisierung:
Wenn Sie den Ablauf für den gesamten Hash festlegen möchten, während Sie seine einzelnen Elemente festlegen, können Sie dies auf verschiedene Arten erreichen.
-
Verwenden Sie Pipelining. Pipelining ist ein spezieller Betriebsmodus, bei dem der Redis-Client mehrere Befehle schnell hintereinander ausgibt und nicht auf eine Antwort wartet, um den nächsten zu senden. Hier ist ein Beispiel in Ruby:
redis.pipelined do redis.hset "foo", "bar", 1 redis.expire "foo", 300 end
-
Transaktionen verwenden. Ohne überwachte Schlüssel ähnelt dies dem Pipelining (weil eine Transaktion nicht abgebrochen werden kann). Die Befehle laufen garantiert zusammen und atomar (mehrere Pipelines können verschachtelt laufen, Transaktionen werden serialisiert)
redis.multi do redis.hset "foo", "bar", 1 redis.expire "foo", 300 end
-
Verwenden Sie Lua-Scripting, um Ihren benutzerdefinierten HSETEX-Befehl zu implementieren. Es wird atomar ausgeführt und Sie müssen nur einen Befehl senden (statt 2 (Pipelining) oder 4 (Transaktion)).