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.