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
?
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
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
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