ruby-on-rails - 使用 mapped_mset 时,如何在 Redis 的 ruby​​ 客户端中设置过期时间?

标签 ruby-on-rails ruby redis

我正在尝试使用

redis.mapped_mset({ "f1" => "v1", "f2" => "v2" })

将多个键设置到Redis中,我不能同时设置过期时间。 将过期时间设置为使用此方法的唯一方法:

set(key, value, options = {})

expire(key, seconds)

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

最佳答案

Redis 本身 does not support带有过期参数的多重设置。 Redis#mapped_set是调用 mset 的语法糖,而 mset 本身是一个语法糖,可以事务性地多次调用后续 set

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

关于ruby-on-rails - 使用 mapped_mset 时,如何在 Redis 的 ruby​​ 客户端中设置过期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40884909/

相关文章:

javascript - 为什么我的 CoffeeScript 函数没有执行?

javascript - 如何使用 Webpack 在 Rails 6 中全局使用 JavaScript 函数?

Redis 键空间通知 - 订阅者数量与争用

对于相同数量的键,Redis 超时消耗更多内存

node.js - EXPIRE Redis key (如果未修改)

ruby-on-rails - 使用搜索评分来确定 Controller 行为(轮胎/ Elasticsearch )

ruby-on-rails - 如何从 Heroku 错误获取 Rails Heroku 日志回溯

ruby - 将参数传递给类方法 Ruby

ruby-on-rails - 如何为 current_user 分配评论?

ruby - 您的 Ruby 版本是 2.0.0,但您的 Gemfile 指定为 2.1.1