Увеличение срока действия ключа redis при извлечении этих ключевых данных из кэша redis

#caching #redis #redis-cluster

#кэширование #redis #redis-кластер

Вопрос:

Мы все знаем, что в кэше redis есть тайм-ауты ttl для кэша. Я хотел бы знать, есть ли в кэше redis условие для увеличения ttl для каждого ключа на основе выборки данных. Это означает, что если данные извлекаются из redis для ключа, то автоматически увеличивается ttl. Пожалуйста, помогите мне получить некоторую информацию об этом.

Ответ №1:

Вы можете добиться этого с помощью сценариев Lua: получить значение val и TTL (в миллисекундах), увеличить TTL, установить новый TTL:

 local key = KEYS[1]
local pttl_incr = ARGV[1]

local val = redis.call("get", key)
if not val then return nil end

local pttl = redis.call("pttl", key)
pttl = pttl   pttl_incr

redis.call("expire", key, pttl)

return val