【发布时间】: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