node.js - Redis-cache-utløp


Jeg har støtt på dette problemet med ioredis hvor jeg har opprettet en nøkkel og satt utløp for den nøkkelen. Koden min ser omtrent slik ut

let temp1 = acct.limit;
let txn = array.length;
let cache = new ioredis(); // note that this is not the exact code snippet
let ttl = txn / temp1;
cache.set('key', true, Math.ceil(ttl));

Problemet jeg støtte på er at noen ganger er ttl et positivt tall og noen ganger et negativt tall. Dette leder til troen på at kanskje -1 er for en ubegrenset ttl. Men etter videre forskning og også prøving og feiling, utløper alt som er mindre enn eller lik 0 umiddelbart. Så spørsmålet mitt er egentlig, hvorfor noen nøkler ikke utløper selv med en satt ttl?

Svar #1

TTL-kommandoen returnerer tre typer svar;

  • Returnerer gjenværende levetid for en nøkkel som har en tidsavbrudd i sekunder.
  • Returnerer -2 hvis nøkkelen ikke eksisterer.
  • Returnerer -1 hvis nøkkelen eksisterer, men ikke har noen tilknyttet utløp.

Svar #2

Redis EXPIRE for en nøkkel settes i ttl sekunder. Så alt som er mindre enn eller lik 0 for ttl-verdien vil få nøklene til å utløpe umiddelbart. Spørsmålet er ikke klart fordi du allerede har forklart at alt som er mindre enn eller lik 0 vil få nøkkelen til å utløpe umiddelbart.