【问题标题】:Rails Redis Reset Counters to 0Rails Redis 将计数器重置为 0
【发布时间】:2016-01-19 19:14:09
【问题描述】:

我想在 Rails 4 应用程序中将 REDIS 计数器的值重置为 0。

我使用 hincrby 来增加计数器

 $redis.hincrby("user:likes", "key", 1)

我无法使用hdel http://redis.io/commands/hdel 删除密钥,因为我需要经常获取密钥。

GETSET 是原子的,可以完成http://redis.io/commands/getset 的工作,如示例中所示

 GETSET mycounter "0"

但由于我使用哈希,我需要使用 HSET http://redis.io/commands/hset

$redis.hset("user:likes", "key", "0")

没有指定hset是否是原子的,有人用hset将redis计数器重置为0吗?如果将计数器重置为 0 不是一个好选择,您知道该怎么做吗?

【问题讨论】:

  • 不确定我是否理解。如果您需要将其设置为零,请将其设置为零。或者你是说你真的需要 GETSET 功能,但是对于哈希?
  • 在文档中指定GETSET是原子的,但没有为HSET指定,HSET也是原子的吗?
  • 我不知道,但是GETSET是两个操作。 HSET 是一个,所以我想它是原子的,不是吗?

标签: ruby ruby-on-rails-4 redis counter


【解决方案1】:

它是原子的,所以如果你运行$redis.hset("user:likes", "key", "0"),它不会影响除了字段:“key”之外的“user:likes”哈希中的其他字段

【讨论】:

  • 如果这解决了您的问题,请不要忘记将其标记为答案 =)
猜你喜欢
  • 2014-12-14
  • 2019-10-18
  • 2020-10-28
  • 2021-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多