redis - 根据条件增加或重置

时间:2017-12-30 01:04:23

标签: redis conditional-statements atomic

我想仅在存在某个键时才增加值。如果密钥不存在,则该值应设置为1.是否可以将此逻辑实现为原子步骤?

1 个答案:

答案 0 :(得分:1)

INCR命令完全符合您的要求。

如果密钥不存在,则在执行增加操作之前将该值设置为0,即该值将设置为1。命令以原子方式运行。

<强>更新

如果要增加的密钥与检查其存在的密钥不同,则必须编写Lua脚本来完成事务中的工作。

if (redis.call("exists", KEYS[1]) > 0) then redis.call("incr", KEYS[2]) end