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

    一.介绍

    redis事务就是一个命令执行的队列,将一系列预定义命令包装成一个整体(一个队列)。当执行时,一次性 按照添加顺序依次执行,中间不会被打断或者干扰。 

    二.基本操作

    开启事务:

    multi
    

    执行事务 

    exec
    

    取消事务 

    discard
    

    三.事务的注意事项

    1)如果定义的事务中所包含的命令存在语法错误,整体事务中所有命令均不会执行。包括那些语法正确的命令。

    2)定义事务的过程中,命令执行出现错误。能够正确运行的命令会执行,运行错误的命令不会被执行 

    四.锁

    对 key 添加监视锁,在执行exec前如果key发生了变化,终止事务执行 

    watch key1 [key2……]
    

    取消对所有 key 的监视 

    unwatch
    

    五.分布式锁

    使用 setnx 设置一个公共锁 

    setnx lock-key value 
    

    利用setnx命令的返回值特征,有值则返回设置失败,无值则返回设置成功

      对于返回设置成功的,拥有控制权,进行下一步的具体业务操作

      对于返回设置失败的,不具有控制权,排队或等待

    分布式锁改良

    使用 expire 为锁key添加时间限定,到时不释放,放弃锁

    expire lock-key second 
    pexpire lock-key milliseconds
  • 相关阅读:
    Linux修改root密码报错
    Python中的排序---冒泡法
    Python随机数
    Python中的深拷贝和浅拷贝
    Couldn’t download https://raw.githubusercontent.com/certbot/certbot/ 问题解决
    Python内置数据结构----list
    Python内置数据结构
    Vue指令
    computed 和 watch
    Vue的数据响应式
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/12737723.html
Copyright © 2011-2022 走看看