2017-02-16 62 views
-1

我有一個類array = [element1, element2, element3]。我同時設置爲element1 = 1s,element2 = 5s,element3 = 7s到期。 這意味着1秒後陣列將更改爲[element2, element3] 5秒後[element3],7秒後將爲空陣列。我們如何做到這一點? 它就像我們設置Redis的過期方式expire key 30,ttl key在紅寶石的特定時間後過期變量

+3

是的,我們做。它涉及編寫代碼來檢查看看有多少時間已過,然後爲其分配'nil'。我從來沒有看到有理由在代碼中做你正在談論的內容。相反,如果時間到期,我會拒絕做那些需要使用這些變量的東西。 –

+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℃;