【发布时间】:2013-08-29 10:15:16
【问题描述】:
使用 Redis,我想执行一个原子命令序列,即我需要保证在执行序列时没有其他客户端会在数据库中执行更改。
如果我只使用 write 命令,我可以使用 MULTI 和 EXEC 语句来确保使用事务的原子性。但是,我也想在我的事务中使用 read 命令。因此我不能使用MULTI,因为读取命令也在排队!
基本上,以原子方式,我需要执行以下操作:
- 从数据库中读取
x, - 基于
x,将f(x)存入数据库。
1. 和 2. 都应该是单个原子事务的一部分。
有没有简单的方法可以做到这一点?
【问题讨论】:
-
你可以尝试使用 Lua 脚本:redis.io/commands/eval
标签: transactions redis atomic