小编典典

设置Redis中的Hashmap值到期?

redis

我如何像使用SETX为常规值那样为Redis中的哈希图设置到期时间。我想为要存储hasmap的会话提供TTL。我可以使用SETEX本身创建Hashmap吗?


阅读 3355

收藏
2020-06-20

共1个答案

小编典典

不,您不能使用SETEX(这是一个字符串方法)创建哈希。您可以调用EXPIRE哈希键,但这将使整个哈希失效。目前不支持单个哈希键/值对的过期。

更新:

如果要在设置散列的各个元素时在整个散列上设置到期时间,则可以通过多种方式实现。

  1. 使用流水线。流水线操作是一种特殊的操作模式,其中redis客户端快速连续发出多个命令,而不必等待发送下一个命令的答复。这是ruby中的示例:

    redis.pipelined do
    

    redis.hset “foo”, “bar”, 1
    redis.expire “foo”, 300
    end

  2. 使用交易。没有监视的键,这类似于流水线操作(因为事务不能中止)。保证命令可以一起运行和原子运行(多个管道可以交错运行,事务被序列化)

    redis.multi do
    

    redis.hset “foo”, “bar”, 1
    redis.expire “foo”, 300
    end

  3. 使用lua脚本来实现您的自定义HSETEX命令。它会自动执行,您只需要发送一个命令(而不是2(流水线)或4(事务))。

2020-06-20