sql >> Database >  >> NoSQL >> Redis

vervaldatum instellen voor Hashmap-waarden in Redis?

Nee, u kunt geen hash maken met SETEX (wat een strings-methode is). U kunt EXPIRE . bellen op hash-sleutel, maar daarmee vervalt de hele hash. Er is momenteel geen ondersteuning voor het verlopen van individuele hash-sleutel/waarde-paren.

Bijwerken:

Als je de vervaldatum van de hele hash wilt instellen terwijl je de afzonderlijke elementen instelt, kun je dat op verschillende manieren bereiken.

  1. Gebruik pijplijnen. Pipelining is een speciale manier van werken waarbij de redis-client verschillende opdrachten snel achter elkaar uitgeeft en niet wacht op een antwoord om de volgende te verzenden. Hier is een voorbeeld in robijn:

    redis.pipelined do
      redis.hset "foo", "bar", 1
      redis.expire "foo", 300
    end
    
  2. Gebruik transacties. Zonder bewaakte sleutels is dit vergelijkbaar met pipelining (want een transactie kan niet worden afgebroken). De commando's lopen gegarandeerd samen en atomair (meerdere pijplijnen kunnen afwisselend worden uitgevoerd, transacties zijn geserialiseerd)

    redis.multi do
      redis.hset "foo", "bar", 1
      redis.expire "foo", 300
    end
    
  3. Gebruik lua-scripting om uw aangepaste HSETEX-opdracht te implementeren. Het wordt atomair uitgevoerd en je hoeft maar één commando te sturen (in plaats van 2(pipelining) of 4 (transactie)).




  1. Hoe een Runaway Index te stoppen Build in MongoDB

  2. Bereken het gemiddelde van velden in ingesloten documenten/array

  3. Mongoose unieke index op subdocument

  4. MongoDB Tekst Zoeken EN meerdere zoekwoorden