【问题标题】:why do not Redis provide a batch set expire time operation on multiple keys?为什么 Redis 不提供对多个 key 的批量设置过期时间操作?
【发布时间】:2017-12-06 00:45:51
【问题描述】:

我想给多个key设置一个过期时间,但是好像每个key都得一个个过期。Redis为什么不提供类似“mset”的操作呢?

【问题讨论】:

    标签: redis


    【解决方案1】:

    您可以使用一个脚本。

    EVAL 'for i, name in ipairs(redis.call("KEYS", "0*")) do redis.call("EXPIRE", name, 10); end' 0
    

    【讨论】:

    • 你能再解释一下这里发生了什么吗? "0*"10 的用途是什么?
    • “0*”是一个通配符,用于获取所有以值 0 开头并设置 10 秒过期的键。
    【解决方案2】:

    因为这个操作不是很频繁,你可以通过以下方式轻松模拟:

    • 服务器端 Lua 脚本

    • 管道化多个过期命令

    无论选择何种解决方案,它只会生成到 redis 服务器的单次往返。

    【讨论】:

    猜你喜欢
    • 2017-11-23
    • 2018-12-06
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 2017-05-04
    • 1970-01-01
    相关资源
    最近更新 更多