sql >> Base de Datos >  >> NoSQL >> Redis

establecer la caducidad de los valores de Hashmap en Redis?

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.

  1. 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
    
  2. 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
    
  3. 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)).