2016-01-19 39 views
1

我想在Rails 4应用程序中将REDIS计数器的值重置为0。Rails 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") 

它没有指定的if置盘是原子,任何人使用hset将redis计数器重置为0?如果将计数器重置为0不是一个好的选择,那么有什么想法如何去做?

+0

不知道我理解。如果您需要将其设置为零,请将其设置为零。或者你是否说你确实需要GETSET功能,但是对于散列? –

+0

在文档中指定GETSET是原子的,但它没有为HSET指定,HSET原子是如何指定的? –

+0

我不知道,但GETSET是两个操作。 HSET是一个,所以我想像会是原子的,不是? –

回答

1

它是原子的,所以如果你运行$redis.hset("user:likes", "key", "0"),它不影响内部的其他领域“用户:喜欢”哈希除了现场:“钥匙”

+0

听起来不错谢谢 –

+0

如果这能解决您的问题,请不要忘记标记为答案=) – Vincent