老师我想问个问题
来源:16-8 内存优化

旧街深港
2022-04-05
redis事务 就是
MULTI 与 EXEC DISCARD WATCH命令 中 是为了让redis有序执行一组命令 命令之间是相互隔离 遵循单一的 执行前后一致性的问题。 即使某个命令失败也不会导致其他命令回滚。但是能保证整个事务执行过程中 不被其他客户端剥夺和抢占 插入
而且 我们通过lua 脚本也可以满足我们同时执行多条命令不被打断的问题。
并且 Redis中 我们还有popline 这种桶状结构 也可以完成 以上问题的产生。
那么他们之间的区别又是什么呢
而且 比如 在抢购环节 中我们 在redis中使用分布式锁来控制售卖数量 和使用 redis事务控制有什么区别呢 因为事务也是抢占了redis的执行权不被剥夺 分布式锁也是一样的。为什么使用事务就比分布式锁 吞吐量高呢。
写回答
1回答
-
好帮手慕小蓝
2025-02-10
事务和Lua脚本都能保证原子性,但Lua脚本更灵活且性能更高。
Pipeline适合批量操作,但不保证原子性。
分布式锁适合需要精确控制资源访问的场景,但性能较低。
在抢购等高并发场景中,使用事务或Lua脚本通常比分布式锁吞吐量更高,因为它们避免了锁竞争的开销。
00
相似问题