NoSQL——Redis事务
1.Redis事务:可以一次性执行多个命令,本质是一组命令集合,一个事务中的所有命令都会序列化,按顺序地串行化执行,而不会被其他命令插入,不许加塞。
2.Redis事务能干嘛?
在一个队列中,一次性,顺序性,排他性的执行一系列命令。
3.Redis事务操作:
1)常用命令
MULTI 标记一个事务块的开始
EXEC 执行所有事务块命令
DISCARD 取消事务,放弃执行事务块内的所有命令
WATCH key [key ...] 监控一个或多个key,如果在事务执行之前这个key被其他命令所改动,那么事务将被打断
UNWATCH 取消 WATCH命令对所有key的监控 (一旦执行了EXEC,那么之前的监控锁都会被取消掉)
4.总结
1)Redis事务的三个阶段
(1)开启:MULTI开启一个事务
(2)入队:将多个命令入队到事务中,接到这些命令并不会立即执行,而是放到等待执行的事务队列里面
(3)执行:EXEC执行事务
2)Redis事务的三个特性
(1)单独的隔离操作:事务中的所有命令都会序列化,按顺序地执行,事务在执行过程中不会被其他客户端发来的命令请求打断。
(2)没有隔离级别的概念:队列中的命令没有提交之前都不会执行,因为事务提交之前的任何指令都不会被实际执行。
(3)不保证原子性:redis同一个事务中如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚。