Redis
 sql >> Database >  >> NoSQL >> Redis

impostare la scadenza per i valori Hashmap in Redis?

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.

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