web-dev-qa-db-fra.com

Temps de création de clé dans redis

Supposons que je fais cela dans redis à 13:30 20 Feb 2020,

> set foo "bar spam"
OK

Je veux avoir le temps de création de foo. Y a-t-il quelque chose comme 

> gettime foo
13:30 20 Feb 2020

?

39
Pratik Deoghare

Redis ne stocke pas cette information.

Vous pouvez utiliser une clé séparée:

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

GET foo:time
57
Donald Miner

Il existe une autre option similaire pour résoudre ce problème, dans le cas où 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 - correspond au délai d’expiration souhaité. Vous pouvez alors déterminer si la valeur est toujours "en vie" avec:

EXISTS foo:alive
10
Damaged Organic

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

vous pouvez 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
1
legale