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

    redis支持简单的事务操作,将redis事务与mysql事务对比:

     

    Mysql

    Redis

    开启

    start transaction

    multi

    语句

    普通sql

    普通命令

    失败

    rollback 回滚

    discard 取消

    成功

    commit

    exec

    在mutil后面的语句中, 语句出错可能有2种情况:

    1: 语法就有问题,此时exec报错, 所有语句得不到执行:

     

    2: 语法本身没错,但适用对象有问题,Exec之后会执行正确的语句,并跳过有问题的语句.

     

    第一条命令执行成功,第二条命令被跳过,一条出现错误其余正确的命令仍然可以执行,再换discard取消试试看:

    mysql的rollback与redis的discard的区别:

    mysql回滚为sql全部成功才执行,一条sql失败则全部失败,执行rollback后所有语句造成的影响消失

    redis的discard只是结束本次事务,正确命令造成的影响仍然还在.

    在事务中还有事务监听命令:

    watch key1 key2 ...  #监听一个或多个key
    
    unwatch   #取消所有的监听

     Redis的事务中启用的是乐观锁,只负责监测key没有被改动.如果没变正常执行,如果有变事务取消

  • 相关阅读:
    IDEA Inspections详解
    IDEA 阿里编码规范插件
    IDEA Save Actions插件
    IDEA Lombok插件
    设计模式-简单工厂模式与工厂模式
    DAO设计模式
    Jcrop+strut2+jsp实现图片剪切
    Spring的Bean的作用域
    Spring的事务机制
    windows 下 Redis 主从 读写分离
  • 原文地址:https://www.cnblogs.com/52lnamp/p/9641307.html
Copyright © 2011-2022 走看看