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

Lagring af nøgler med præfiks, der udløber i redis

Dette kan ikke gøres direkte. Du kan tilføje et udløb på hset som helhed, men ikke på individuelle felter. Hvis du vil gøre dette, kan du ringe til r.expire('name', time) , hvor time er antallet af sekunder indtil udløb.

Som et alternativ kan du bruge set i stedet for hset :

for i in range(10):
    r.set('name:' + str(i), i, ex=time_to_expire_s)

Dette vil fjerne noget funktionalitet, da du (for eksempel) ikke vil have en god måde at liste alle nøgler, der starter med 'navn:', men det vil lade dig indstille udløbsdatoen for nøgler uafhængigt.

Som en anden mulighed kan du indstille udløb i værdierne for hset . Dette kræver logik på klientsiden, og Redis vil ikke gøre noget for dig; men du kunne gøre noget som:

for i in range(10):
    r.hset(
        'name',
        i,
        json.dumps({ 'value': i, 'expiration': time.time() + time_to_expire_s })
    )

Og så hvis du nogensinde læser en værdi, hvis udløb er i fortiden, anser du det for at være en cache-miss. Dette vil ikke hjælpe dig, hvis du forsøger at udløbe nøgler for at frigøre hukommelse, men hvis dit mål er at få nøglerne til at udløbe af en eller anden form for korrekthedsårsag, kan dette muligvis virke for dig.




  1. Indstil MongoDb-konverteren programmatisk

  2. Udfyld manglende datoer i optegnelser

  3. Sådan gør du:Indekser scannede PDF'er i skala ved hjælp af færre end 50 kodelinjer

  4. MongoDB:bedste design til beskedapp