在ROR中使用redis客户端时如何设置过期时间?

neo*_*neo 5 ruby ruby-on-rails redis

我正在尝试使用

redis.mapped_mset({ "f1" => "v1", "f2" => "v2" })
Run Code Online (Sandbox Code Playgroud)

设置多个密​​钥Redis,我不能同时设置过期时间.设置过期时间的唯一方法是使用它:

set(key, value, options = {})
Run Code Online (Sandbox Code Playgroud)

要么

expire(key, seconds)
Run Code Online (Sandbox Code Playgroud)

我不得不多次打电话,这不是我想看到的.还有其他方法可以解决这个问题吗?

Ale*_*kin 5

Redis 本身不支持带有过期参数的多重设置。Redis#mapped_set是一个要调用的语法糖msetmset它本身就是一个在事务上set多次调用的语法糖。

因此,您唯一需要做的就是将后续调用包装set(... ex:...)到一个事务中Redis#multi