有没有办法让 redis 键值随着时间的推移减少 1?

Erd*_*nee 1 redis

我只想在 Redis 数据库中使用 1 个键值对。每 60 秒减 1。是否可以?

for*_*ack 8

一个有趣的问题 :) 是的,你可以用一个技巧来做到这一点。

正如我们所知,Redis TTL 可以随着时间的推移自动减少。所以可以使用TTL作为值,TTL会每秒递减1。

说,你想设置一个值N,为了实现你的目标,你可以设置一个带有 expire 的键值对TTL = 60 * N

SET key N EX TTL
Run Code Online (Sandbox Code Playgroud)

当你想得到这个值时,只需得到它的 TTL,然后做一些数学运算:

ttl = TTL key

if (ttl > 0)
   value = ttl / 60 + 1
else
   // no longer exist
Run Code Online (Sandbox Code Playgroud)