zoukankan      html  css  js  c++  java
  • redis 之 redis事务

    Redis事务

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

    Redis的作用

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

    Redis事务的三个特性

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

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

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

    常用命令

    命令 描述
    multi  标记一个事务的开始
    discard  取消事务,放弃执行事务块内的所有命令
    exec 标记事务开始,开始执行队列中的命令
    watch <key1> <key2>... 监视一个或者多个可以,如果在事务执行之前key的值发生改变,则事务将被打断
    unwatch 取消watch命令对所有key的监视

    图解

    从输入Multi命令开始,输入的命令都会依次进入命令队列中,但不会执行,至到输入Exec后,Redis会将之前的命令队列中的命令依次执行。

    组队的过程中可以通过discard来放弃组队。

     事务的错误处理

    组队中某个命令出现了报告错误,执行时整个的所有队列会都会被取消。

    如果执行阶段某个命令报出了错误,则只有报错的命令不会被执行,而其他的命令都会执行,不会回滚 

  • 相关阅读:
    iOS UITextField 设置内边距
    营造积极的OKR环境
    管理者的五项基本活动
    如何在团队中让OKR深入人心
    项目管理文化:营造积极氛围的里程碑
    OKR文化:用SMART原则量化目标
    成功落地OKR的要诀
    培养一支有 OKR 思想的管理团队
    如何成为一个成功的会议领导者
    项目管理文化:开展有效的总结会议
  • 原文地址:https://www.cnblogs.com/zero-vic/p/13291301.html
Copyright © 2011-2022 走看看