Nej, du kan inte skapa hash med SETEX
(vilket är en strängmetoder). Du kan anropa EXPIRE
på hash-nyckel, men det kommer att förfalla hela hashen. Det finns inget stöd för tillfället för utgången av individuella hashnyckel/värdepar.
Uppdatering:
Om du ville ställa in utgångsdatum för hela hashen samtidigt som du ställer in dess individuella element, kan du uppnå det på flera sätt.
-
Använd pipelining. Pipelining är ett speciellt driftsätt där Redis-klienten utfärdar flera kommandon i snabb följd, utan att vänta på att ett svar ska skickas nästa. Här är ett exempel i ruby:
redis.pipelined do redis.hset "foo", "bar", 1 redis.expire "foo", 300 end
-
Använd transaktioner. Utan bevakade nycklar liknar detta pipelining (för en transaktion kan inte avbrytas). Kommandona kommer garanterat att köras tillsammans och atomärt (flera pipelines kan köras sammanflätade, transaktioner serialiseras)
redis.multi do redis.hset "foo", "bar", 1 redis.expire "foo", 300 end
-
Använd lua scripting för att implementera ditt anpassade HSETEX-kommando. Det kommer att köras atomiskt och du behöver bara skicka ett kommando (istället för 2 (pipelining) eller 4 (transaktion)).