zoukankan      html  css  js  c++  java
  • Redis 事务与锁

    基本操作

    事务的基本操作
    # 开启事务,设定事务的开启位置,此指令执行后,后续的所有指令均加入到事务中
    multi
    
    # 取消事务,终止当前事务的定义,发生在 multi 之后,exec 之前
    discard
    
    # 执行事务,设定事务的结束位置,同时执行事务。与 multi 成对出现,成对使用
    exec

    加入事务的命令暂时进入到任务队列中,并没有立即执行,只有执行 exec 命令才开始执行。

    若加入事务的命令有语法错误,那么队列中所有的命令都不会执行。

    若加入事务的命令格式正确,但无法正确的执行。那么能够正确运行的命令会执行,运行错误的命令不会被执行。

    已经执行完毕的命令对应的数据不会自动回滚,需要程序员自己在代码中实现回滚。

    事务工作流程

    使用队列实现

    锁 

    # 对 key 添加监视锁(必须在事务之前),在执行 exec 前如果 key 发生了变化,终止事务执行
    watch key1 key2
    
    # 取消对所有 key 的监视,执行 exec 后会自动取消
    unwatch

    https://redis.io/topics/transactions

    https://redis.io/topics/distlock

  • 相关阅读:
    oracle学习笔记(十五) PL/SQL语法结构以及使用
    Jquery1
    DOM2
    DOM
    JS的使用
    登录
    数据库操作是sql的操作1
    数据库2_sqlHelper
    数据库1数据库常用指令
    C# 基础
  • 原文地址:https://www.cnblogs.com/jhxxb/p/14527274.html
Copyright © 2011-2022 走看看