【发布时间】:2018-10-22 20:49:18
【问题描述】:
我想在 Redis 中执行原子GET,如果返回的值等于某个预期值,我想执行SET,但我想将所有这些链接在一起一个原子操作。 (我正在尝试设置一个标志来指示是否有任何进程正在将数据写入磁盘,因为可能只允许一个进程这样做。)
Redis 可以做到这一点吗?
我看过关于MULTI 操作的文档,但我还没有看到MULTI 操作中的条件操作。其他人对此提出的任何建议将不胜感激!
【问题讨论】:
-
您可以使用 Lua 脚本在 redis 端完成所有操作:redis.io/commands/eval
-
@ChrisTanner 将此作为答案,我会投票赞成
-
如果其他人也希望创建写锁,这是一个很好的阅读:redis.io/topics/distlock
标签: lua redis conditional atomic