《Redis官方文档》事务
事务
MULTI
、 EXEC
、 DISCARD
和 WATCH
是 Redis 事务的基础。事务允许一次独立的执行一组命令,并且拥有两个重要的保证。
- Redis事务的执行是单步的独立的操作:所有的在事务中的命令都是序列化和顺序地。它在执行事务中永远不会被另一个客户端打断。
- Redis的事务是原子性的:所有的命令,要么全部执行,要么全部不执行。
- EXEC的命令触发执行Redis事务中的所有命令,所以如果这个客户端之前调用了
MULTI
命令却断开了redis事务中的连接,那么这个事务的将不会被执行。 - 当我们使用了AOF序列化(
append-only-file
)时,Redis会确保去使用单独的同步Write(2)
写入磁盘中。然而如果Redis服务阻塞或者被系统管理员杀死,那么将可能导致只有部分的操作被执行。Redis在重启的时候将会检测当前状态,并退出这个错误。它可以使用Redis-Check-AOF
工具移除部分的事务,去修复这个AOF文件,所以Redis可以再次启动。
- EXEC的命令触发执行Redis事务中的所有命令,所以如果这个客户端之前调用了