Redis---03Redis事务

一、Redis事务

  1.简述:

    Redis事务是一个单独的隔离操作;事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断

  2.作用:

    主要作用就是串联多个命令防止别的命令插队

  3.相关实现命令

     multi:开启事务

     exec:提交事务,执行所有事务块内的命令

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

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

     unwatch:取消 WATCH 命令对所有 key 的监视。

  4.事务过程描述:

    从输入Multi命令开始,输入的命令都会依次进入命令队列中,但不会执行,至到输入Exec后,Redis会将之前的命令队列中的命令依次执行;在组队的过程中可以通过discard来放弃组队。

  5.三特性

    ①单独的隔离操作

      事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断

    ②没有隔离级别的概念

      队列中的命令没有提交之前都不会实际的被执行,因为事务提交前任何指令都不会被实际执行,也就不存在“事务内的查询要看到事务里的更新,在事务外查询不能看到”这个让人万分头痛的问题 

    ③不保证原子性

      Redis同一个事务中如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚

二、操作过程演示

  1.不加watch/unwatch操作

          

   2.加watch/unwatch操作

      

猜你喜欢

转载自www.cnblogs.com/jenne-blog/p/12694805.html
今日推荐