如果我使用setex
设置了有效期的密钥,然后使用set
更新该密钥的值,那么set
会删除到期属性吗?
setex testKey 10 val123
5秒钟后......
set testKey val456
答案 0 :(得分:2)
是的,过期/超时将被删除。
如果要保持超时,则必须使用class AddOrderToThemesOffers < ActiveRecord::Migration[5.0]
def up
add_column :themes_offers, :order, :integer
# mark order for each existing orders
add_index :themes_offers, [:theme_id, :order], unique: true, name: 'index_offer_order_on_theme'
end
def down
remove_index :themes_offers, 'index_offer_order_on_theme'
remove_column :themes_offers, :order, :integer
end
end
命令获取剩余的生存时间,并调用TTL
重置值和超时。
为了使这两个操作成为原子,你可以将它们包装成Lua脚本。
此外,您可以使用SETEX
和PTTL
来获得毫秒精度。