#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