Есть ли способ уменьшить значение ключа Redis на 1 с течением времени? - PullRequest
1 голос
/ 14 января 2020

Я хочу использовать только одну пару ключ-значение в базе данных Redis. и значение будет уменьшаться на 1 каждые 60 секунд. Возможно ли это?

1 Ответ

8 голосов
/ 14 января 2020

Интересный вопрос :) Да, вы можете сделать это с помощью хитрости.

Как мы знаем, Redis TTL может автоматически уменьшаться со временем. Таким образом, вы можете использовать TTL в качестве значения, и TTL будет уменьшаться на 1 каждую секунду.

Скажем, вы хотите установить значение N, чтобы достичь своей цели, вы можете установить ключ пара-значение с истечением TTL = 60 * N:

SET key N EX TTL

Если вы хотите получить значение, просто получите его TTL и выполните некоторые математические операции:

ttl = TTL key

if (ttl > 0)
   value = ttl / 60 + 1
else
   // no longer exist
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...