单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。
假设我先在 session-1 里执行:
1 、WATCH name
2 、MULTI
3 、set name java
然后,我再去到 session-2 里执行:
1 、set name golang
再回到 session-1 里执行
4 、exec
此时,session-1 返回(nil),说明事务回滚,那不就说明事务也保持了原子性吗?
那为什么都说 redis 不具备原子性?谢谢各位大佬解答
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.