Redis Срок действия основан на значении - PullRequest
0 голосов
/ 22 марта 2019

У меня есть приложение, которое хранит значения ключей в Redis, длина ключа составляет 8 байтов, а значение представляет собой список целых чисел. Моя задача состоит в том, чтобы найти способ истечения старых значений для данного ключа. худшее, что я могу сделать, это добавить временные метки к каждому значению и исключить их на стороне клиента. Есть ли чистый способ сделать это на стороне сервера или использовать другое решение вместо Redis?

Обновление:

мы можем сделать это Луа.

получить предметы:

local currenttime=redis.call('time')[1]
local indexes = redis.call("smembers", KEYS[1])
local values=''
for k,v in pairs(indexes) do
    local value, unixtime=string.match(v, "(.*)%:(.*)")
    if(tonumber(unixtime)+60>tonumber(currenttime)) then
        values=value..values..':'
    else
         redis.call("SREM",k,v)
    end
end
return values

добавить предметы:

local time=redis.call('time')
local r=redis.call("sadd", KEYS[1],KEYS[2]..":"..time[1])
return r
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...