56 votes

Heure de création de la clé dans redis

Supposons que je le fasse dans redis à 13:30 20 Feb 2020 ,

 > set foo "bar spam"
OK

Je veux obtenir l'heure de création de foo . Y a-t-il quelque chose comme

 > gettime foo
13:30 20 Feb 2020

?

78voto

Donald Miner Points 18116

Redis ne stocke pas ces informations.

Vous pouvez utiliser une clé distincte :

 MULTI
SET foo "bar spam"
SET foo:time "13:30 20 Feb 2020"
EXEC

GET foo:time

14voto

Damaged Organic Points 4473

Il existe une autre option similaire pour résoudre ce problème, pour le cas d'utilisation lorsque vous avez besoin d'un minuteur pour détecter la valeur expirée sans supprimer la valeur elle-même :

 MULTI
SET foo "bar"
SET foo:alive 1 EX 30
EXEC

Ici 30 - est un délai d'attente souhaité. Vous pouvez ensuite déterminer si la valeur est toujours « vivante » avec :

 EXISTS foo:alive

4voto

legale Points 199

Je pense que c'est possible si vous connaissez le TTL initial;

tu peux faire comme ça :

 $init = 60; //initial time
$ttl = $redis->ttl("key"); //current ttl
$diff = $init - $ttl; //difference is the time passed after key was created
$creation = time() - $diff; //this is creation time in seconds since unix epoch

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X