zoukankan      html  css  js  c++  java
  • Redis(四)

    Redis的事务

    Redis事务的定义

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

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

    Multi,Exec,discard

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

     

     

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

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

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

     

     区别于关系型数据库,如果关系型数据库有一个错误,则全部回滚(roll back)

    锁的使用

    在关系型数据库悲观锁使用很多,在Redis这种NoSQL数据库中乐观锁使用很多

    WATCH key [key...]

    在执行multi之前,先执行watch key1 [key2],可以监视一个(或多个)Key,如果在事务执行之前这个(或这些)key被其他命令所改动,那么事务将被全部取消

     

     解答:因为我在exec之前在另个一个客户端更改了a的值,则watch监测下的a被改动,则事务将被全部取消

    unwatch 取消watch对所有key的监视

    Redis事务的特性

     

  • 相关阅读:
    文件隐藏在一张图片里
    晶振
    主宰全球的10大算法
    java+mysql连接的优化
    排序剔除
    js数据类型
    字符实体
    表单
    定义样式表
    布局相关的属性
  • 原文地址:https://www.cnblogs.com/qyx66/p/12194686.html
Copyright © 2011-2022 走看看