我有一个array = [element1, element2, element3]
的课程。我同时设置了element1 = 1s
,element2 = 5s
,element3 = 7s
的到期日期。
这意味着1秒后数组将更改为[element2, element3]
5s之后[element3]
,7s之后将是空数组。我们怎么做到这一点?
这就像我们为Redis expire key 30
,ttl key
设置过期的方式。
答案 0 :(得分:0)
在ruby中没有内置的功能,根据具体情况,您可以使用许多不同的数据结构来实现它。
这是一个简单的例子:
class Ephemarray
def initialize
@array = []
end
def [] index
return nil if @array[index].nil?
return @array[index] = nil if (Time.now - @array[index][2] > @array[index][1])
return @array[index][0]
end
def []= index, expiry, value
@array[index] = [value, expiry, Time.now]
end
end
e = Ephemarray.new
e[0, 4] = 'blah'
当然,您始终可以使用gem install redis
c;