sql >> Databáze >  >> NoSQL >> Redis

nastavit expiraci pro hodnoty Hashmap v Redis?

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.

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




  1. Catbox-redis zobrazuje chybu odpojení v mé aplikaci hapijs

  2. Jak zjistit, zda je sidekiq připojen k serveru redis?

  3. Jarní datové transakce MongoDB

  4. ActionCable na AWS:Chyba během handshake WebSocket:Neočekávaný kód odpovědi:404