我想将Redis用作随机种子缓存。当我想要一个键的值时,如果还没有,我将生成一个随机字符串并存储它以供以后重用。
如何执行原子GET EXISTING OR SET AND RETURN THIS VALUE
?
答案 0 :(得分:5)
您可以使用SETNX尝试先设置值。然后GET将为您提供现有值或您尝试设置的新值。
SETNX key value
如果您想知道这是否是新值,可能会返回0或1
答案 1 :(得分:1)
似乎没有一个命令可以做到这一点。使用MULTI
和WATCH
:
首先:
GET key
如果null
,则:
WATCH key
MULTI
SET key value
EXEC
如果[null]
(表示交易已中止),则密钥是在此期间创建的,现在必须存在:
GET key