Ne, pomocí SETEX
nelze vytvořit hash (což je metoda řetězců). Můžete zavolat EXPIRE
na hash klíči, ale tím vyprší platnost celého hash. V současné době neexistuje žádná podpora pro vypršení platnosti jednotlivých párů hash klíč/hodnota.
Aktualizace:
Pokud jste chtěli nastavit expiraci pro celý hash při nastavování jeho jednotlivých prvků, můžete toho dosáhnout několika způsoby.
-
Použijte potrubí. Pipelining je speciální režim provozu, kdy klient redis vydává několik příkazů v rychlém sledu, nečeká na odpověď a odesílá další. Zde je příklad v ruby:
redis.pipelined do redis.hset "foo", "bar", 1 redis.expire "foo", 300 end
-
Používejte transakce. Bez sledovaných klíčů je to podobné jako zřetězení (transakce se nemůže přerušit). Je zaručeno, že příkazy poběží společně a atomicky (několik kanálů může běžet prokládaných, transakce jsou serializovány)
redis.multi do redis.hset "foo", "bar", 1 redis.expire "foo", 300 end
-
Použijte lua skriptování k implementaci vlastního příkazu HSETEX. Bude proveden atomicky a stačí odeslat jeden příkaz (místo 2 (řetězení) nebo 4 (transakce)).