Rails Redis过期方法

时间:2018-11-20 03:18:59

标签: ruby-on-rails redis

如果我有一个令牌会在21天后过期

Rails.cache.write token, id, expires_in: 21.days

我正在尝试编写一种方法来检查是否已过期。请给我指示

def check_token_expiry(token)

end

2 个答案:

答案 0 :(得分:0)

如果与token/key关联的值已过期,则以下方法将返回。

def check_token_expiry(token)
  Rails.cache.read(token).nil?
end

基本上,尝试从缓存中读取值。如果已过期,则read方法将返回nil。

答案 1 :(得分:0)

在缓存期间指定expires_in: 21.days时,您告诉基础缓存存储将给定密钥(此处为token)的数据存储21天,在21天后过期意味着数据不再可使用您使用exist?方法进行检查的给定密钥。

Rails.cache.exist?(token) # => true  (data is available and you read)
Rails.cache.exist?(token) # => false (cache is expired, data is not available)