No, non puoi creare hash con SETEX
(che è un metodo di stringhe). Puoi chiamare EXPIRE
sulla chiave hash, ma scadrà l'intero hash. Al momento non è disponibile alcun supporto per la scadenza delle singole coppie chiave/valore hash.
Aggiornamento:
Se desideri impostare la scadenza sull'intero hash mentre imposti i suoi singoli elementi, puoi ottenerlo in diversi modi.
-
Usa la conduttura. Il pipelining è una modalità operativa speciale in cui il client redis emette diversi comandi in rapida successione, senza attendere una risposta per inviare il successivo. Ecco un esempio in ruby:
redis.pipelined do redis.hset "foo", "bar", 1 redis.expire "foo", 300 end
-
Usa le transazioni. Senza chiavi controllate è simile al pipelining (perché una transazione non può essere interrotta). I comandi sono garantiti per essere eseguiti insieme e atomicamente (più pipeline possono essere eseguite interleaved, le transazioni sono serializzate)
redis.multi do redis.hset "foo", "bar", 1 redis.expire "foo", 300 end
-
Usa lo scripting lua per implementare il tuo comando HSETEX personalizzato. Verrà eseguito atomicamente e devi solo inviare un comando (invece di 2 (pipelining) o 4 (transazione)).