No, no puedes crear hash con SETEX
(que es un método de cadenas). Puedes llamar a EXPIRE
en la clave hash, pero eso expirará todo el hash. No hay soporte en este momento para la caducidad de los pares clave/valor de hash individuales.
Actualizar:
Si desea establecer la caducidad de todo el hash mientras establece sus elementos individuales, puede lograrlo de varias maneras.
-
Usar canalización. La canalización es un modo especial de operación en el que el cliente redis emite varios comandos en rápida sucesión, sin esperar una respuesta para enviar el siguiente. Aquí hay un ejemplo en ruby:
redis.pipelined do redis.hset "foo", "bar", 1 redis.expire "foo", 300 end
-
Usar transacciones. Sin claves supervisadas, esto es similar a la canalización (ya que una transacción no se puede cancelar). Se garantiza que los comandos se ejecutarán juntos y atómicamente (varios conductos pueden ejecutarse intercalados, las transacciones se serializan)
redis.multi do redis.hset "foo", "bar", 1 redis.expire "foo", 300 end
-
Utilice secuencias de comandos lua para implementar su comando HSETEX personalizado. Se ejecutará atómicamente y solo tiene que enviar un comando (en lugar de 2 (canalización) o 4 (transacción)).