-
Redis不支持ACID;
-
Redis事务分为两大阶段:multi(组队阶段)和exec(执行阶段),放弃执行可使用discard,
若在组队阶段失败,则后面执行阶段所有操作将会一块失败,若组队阶段全部成功,则后面执行阶段只会部分失败(造成不一致); -
在执行multi之前,可以先执行watch(乐观锁方式),监控一个或多个key,如果在事务执行之前监视的key被其他命令所改动,事务将被打断(类似准备阶段出现失败,后面执行阶段将会一起失败);
Redis事务 三特性:
- 单独隔离操作(事务中所有命令都会序列化,按顺序执行,事务在执行过程中,不会被其他客户端发来的请求打断);
- 没有隔离级别的概念(队列中的命令没有提交之前都不会被实际执行,因为事务提交前任何指令都不会被实际执行);
- 不保证原子性(事务中如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚);



