sql >> Databasteknik >  >> NoSQL >> Redis

ställa in utgångsdatum för Hashmap-värden i Redis?

Nej, du kan inte skapa hash med SETEX (vilket är en strängmetoder). Du kan anropa EXPIRE på hash-nyckel, men det kommer att förfalla hela hashen. Det finns inget stöd för tillfället för utgången av individuella hashnyckel/värdepar.

Uppdatering:

Om du ville ställa in utgångsdatum för hela hashen samtidigt som du ställer in dess individuella element, kan du uppnå det på flera sätt.

  1. Använd pipelining. Pipelining är ett speciellt driftsätt där Redis-klienten utfärdar flera kommandon i snabb följd, utan att vänta på att ett svar ska skickas nästa. Här är ett exempel i ruby:

    redis.pipelined do
      redis.hset "foo", "bar", 1
      redis.expire "foo", 300
    end
    
  2. Använd transaktioner. Utan bevakade nycklar liknar detta pipelining (för en transaktion kan inte avbrytas). Kommandona kommer garanterat att köras tillsammans och atomärt (flera pipelines kan köras sammanflätade, transaktioner serialiseras)

    redis.multi do
      redis.hset "foo", "bar", 1
      redis.expire "foo", 300
    end
    
  3. Använd lua scripting för att implementera ditt anpassade HSETEX-kommando. Det kommer att köras atomiskt och du behöver bara skicka ett kommando (istället för 2 (pipelining) eller 4 (transaktion)).




  1. Java/MongoDB-fråga efter datum

  2. Skrivskyddat filsystem när du försöker mkdir /data/db på Mac

  3. Hur konverterar man från sträng till datatyp?

  4. php-redis - Finns det något sätt att lagra PHP-objekt i Redis utan att serialisera det?