2016-01-19 80 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