Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想使用 Redis 作为随机种子缓存。当我想要一个键的值时,如果还没有,我将生成一个随机字符串并将其存储以供以后重用。
我如何执行 atomic GET EXISTING OR SET AND RETURN THIS VALUE?
GET EXISTING OR SET AND RETURN THIS VALUE
您可以先使用 SETNX 尝试设置值。然后 GET 将为您提供现有值或您尝试设置的新值。
SETNX key value
如果您想知道这是否是新值,这可能会返回 0 或 1
似乎没有一个命令可以做到这一点。使用MULTI和WATCH:
MULTI
WATCH
第一的:
GET key
如果null,那么:
null
WATCH key MULTI SET key value EXEC
如果[null](表示事务中止),则密钥是在此期间创建的,并且现在必须存在:
[null]