NoSQL——Redis事务

NoSQL——Redis事务

 

        1.Redis事务:可以一次性执行多个命令,本质是一组命令集合,一个事务中的所有命令都会序列化,按顺序地串行化执行,而不会被其他命令插入,不许加塞。

        2.Redis事务能干嘛?

        在一个队列中,一次性,顺序性,排他性的执行一系列命令。

        3.Redis事务操作:

                1)常用命令

                MULTI  标记一个事务块的开始

NoSQL——Redis事务

                EXEC   执行所有事务块命令

NoSQL——Redis事务

                DISCARD   取消事务,放弃执行事务块内的所有命令

NoSQL——Redis事务

NoSQL——Redis事务

NoSQL——Redis事务               

 

                WATCH key [key ...]   监控一个或多个key,如果在事务执行之前这个key被其他命令所改动,那么事务将被打断

NoSQL——Redis事务

                UNWATCH 取消 WATCH命令对所有key的监控     (一旦执行了EXEC,那么之前的监控锁都会被取消掉)

NoSQL——Redis事务

          4.总结

             1)Redis事务的三个阶段

                   (1)开启:MULTI开启一个事务

                   (2)入队:将多个命令入队到事务中,接到这些命令并不会立即执行,而是放到等待执行的事务队列里面

                   (3)执行:EXEC执行事务

              2)Redis事务的三个特性

                   (1)单独的隔离操作:事务中的所有命令都会序列化,按顺序地执行,事务在执行过程中不会被其他客户端发来的命令请求打断。

                   (2)没有隔离级别的概念:队列中的命令没有提交之前都不会执行,因为事务提交之前的任何指令都不会被实际执行。

                   (3)不保证原子性:redis同一个事务中如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚。