在将实体存储在 redis 中作为序列化二进制 blob 的应用程序中工作。我有多个客户端处理同一个数据集,我希望使用乐观并发。
我的要求是:
- 在一次往返中读取特定键的序列化实体
- 将修改后的实体写回redis。如果任何其他客户端在读取和写入之间修改了实体,则操作将失败
这可以在redis中实现吗?如果是这样:应该执行哪些 redis 命令来执行此操作?
最佳答案
WATCH 键
,GET 键
,MULTI
,SET 键
,然后是EXEC
。如果键的值在您执行 WATCH
后更改,则 EXEC
将失败。
关于Redis与Optimistic并发控制: is it possible?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8121378/