zoukankan      html  css  js  c++  java
  • Transaction-事务

    简介:
    这篇笔记主要记录一下redis中事务的处理设置。
     
    命令介绍:
    1.multi
    可用版本: >=1.2.0
    时间复杂度: O(1)
    作用:
    标记一个事务块的开始。事务块中的多条命令会按照先后顺序放入一个队列之中,最后由exec命令原子性的执行。
    返回值:
    返回OK。
     
    2.exec
    可用版本: >=1.2.0
    时间复杂度: 事务块中使用命令的时间复杂度之和
    作用:
    执行所有事务块中的命令。
    假如某些key正处于watch命令的监控之下,并且事务块中有和这个key相关的命令,那么exec命令只在这个key没有被其他命令改动的情况下执行并且失效,否则该事务将被打断。
    返回值:
    执行成功,返回事务块中所有命令的返回值。执行失败返回nil。
     
    3.discard
    可用版本: >=2.0.0
    时间复杂度: O(1)
    作用:
    取消事务,放弃执行事务块中的所有命令。
    如果正在使用watch命令监视某一些key的话,那么取消所有的监视,等同于命令unwatch。
    返回值:
    返回OK。
     
    4.watch
    可用版本: >=2.2.0
    时间复杂度: O(1)
    命令格式: watch key [key...]
    作用:
    监视一个或者多个key,如果事务执行之前这些key被其他命令改动,那么事务将中断。
    返回值:
    返回OK。
     
    5.unwatch
    可用版本: >=2.2.0
    时间复杂度: O(1)
    作用:
    取消watch命令对所有key的监视。
    返回值:
    返回OK。
    注意:
    如果在执行watch命令之后,exec命令或者discard命令先被执行了的话,那么就不需要执行unwatch命令了。
    因为 EXEC 命令会执行事务,因此 WATCH 命令的效果已经产生了;而 DISCARD 命令在取消事务的同时也会取消所有对 key 的监视,因此这两个命令执行之后,就没有必要执行 UNWATCH 了。
    作者:红雨
    出处:https://www.cnblogs.com/52why
    微信公众号: 红雨python
  • 相关阅读:
    Euclid's Game (简单博弈)
    “科大讯飞杯”第十七届同济大学程序设计预选赛暨高校网络友谊赛(部分题解)
    牛客小白月赛4 (B 博弈论)
    博弈--尼姆博弈
    C# .net中获取台式电脑中串口设备的名称
    打印出C# 中float ,double 在内存中的存放形式
    VS2010 C++ 创建COM组件
    .net 中两个日期算经过的月份数
    一种计算MD5的实现方法
    将文件从程序集中复原
  • 原文地址:https://www.cnblogs.com/52why/p/14338903.html
Copyright © 2011-2022 走看看