Redis 事务与锁

基本操作

事务的基本操作
开启事务,设定事务的开启位置,此指令执行后,后续的所有指令均加入到事务中
multi

取消事务,终止当前事务的定义,发生在 multi 之后,exec 之前
discard

执行事务,设定事务的结束位置,同时执行事务。与 multi 成对出现,成对使用
exec

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

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

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

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

事务工作流程

使用队列实现

Redis 事务与锁

对 key 添加监视锁(必须在事务之前),在执行 exec 前如果 key 发生了变化,终止事务执行
watch key1 key2

取消对所有 key 的监视,执行 exec 后会自动取消
unwatch

https://redis.io/topics/transactions

https://redis.io/topics/distlock

Original: https://www.cnblogs.com/jhxxb/p/14527274.html
Author: 江湖小小白
Title: Redis 事务与锁

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/529102/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Redis内存满了怎么办

    Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。 1、通过配置文件配置 通过在Red…

    Linux 2023年5月28日
    079
  • C语言练习:hackerrank十五关

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月11日
    095
  • NoteOfMySQL-09-存储过程与函数

    常用的SQL语句在执行时需要先编译,然后执行;而存储过程(Store Procedure)是经编译后存储在数据库中的SQL语句集,在数据库中创建和保存。 一、存储过程与函数的区别 …

    Linux 2023年6月14日
    084
  • RISC-V靠谱吗?

    向各位行业大佬求教个问题:RISC-V靠谱吗? 事情是这样,昨天公司来了几个人,自称是国内唯几的做RISC-V芯片的公司。我上网查了,确实有这么一家公司,是初创公司。他们拿出PPT…

    Linux 2023年6月6日
    0116
  • 【socket】基于socket下进程上报温度

    fork()函数又叫计算机程序设计中的分叉函数,fork是一个很有意思的函数,它可以建立一个新进程,把当前的进程分为父进程和子进程,新进程称为子进程,而原进程称为父进程。fork调…

    Linux 2023年6月13日
    087
  • 双系统设置默认启动系统

    在原有windows系统下,我们装完Ubuntu系统后,会出现Ubuntu的grub引导界面(倒计时后自动进入Ubuntu),如下图所示。 假设我们需要将倒计时后默认启动的系统改为…

    Linux 2023年6月14日
    0144
  • 浅谈kali : arpspoof工具原理

    介绍 arpspoof是一个通过ARP协议伪造数据包实现中间人攻击的kali工具。 中间人攻击虽然古老,但仍处于受到黑客攻击的危险中,可能会严重导致危害服务器和用户。仍然有很多变种…

    Linux 2023年6月14日
    088
  • linux DMA接口

    1.1. 一致性DMA映射(Consistent DMA mappings ) 主要用于映射长时间使用的区域。 CPU和DMA controller不需要考虑cache的影响。 1…

    Linux 2023年6月6日
    071
  • ansible批量采集、批量互信、批量复制、分发文件

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    0101
  • UWP graphql-dotnet新版数据查询客户端的实现

    之前写过一篇文章 UWP GraphQL数据查询客户端的实现,这次的标题基本差不多,只不过微软这个graphql-dotnet repo从1.x升级到了3.x,跨度有点大。 如果你…

    Linux 2023年6月13日
    093
  • 【深度学习】神经网络前向传播简单实现

    步骤 输入层的每个节点与隐藏层的每个节点做点对点计算,加权求和 + 激活函数 利用同样的方法,计算隐藏层到输出层 隐藏层对加权结合后的结果使用激活函数,本例使用Sigmoid 最终…

    Linux 2023年6月13日
    0108
  • 存入redis中的java对象都需要序列化

    存入redis中的java对象都需要实现Serializable接口 Original: https://www.cnblogs.com/toSeeMyDream/p/127795…

    Linux 2023年5月28日
    0118
  • 青春浙江微信平台如何退出?如何重新登录?微信如何清除浏览器缓存,如何清除浏览器cookies?

    青春浙江不能退出重新登录,有同学可能寻找解决方法,给大家贴出来:bug 解决办法:1. debugmm.qq.com/?forcex5=true 打开调试2. http://deb…

    Linux 2023年5月27日
    095
  • grep

    grep 基本匹配: grep a*re hello.txt –* …

    Linux 2023年6月11日
    089
  • SSH 完全教程 1

    SSH(Secure Shell 的缩写)是一种网络协议,用于加密两台计算机之间的通信,并且支持各种身份验证机制。 实务中,它主要用于保证远程登录和远程通信的安全,任何网络服务都可…

    Linux 2023年6月7日
    080
  • Android BLE 蓝牙开发——扫码枪基于BLESSED

    一、蓝牙模式HID与BLE 当扫码枪与手机连接时,通常采用的是 蓝牙HID(Human Interface Device)模式。本质上是一个把扫码枪作为一个硬件键盘,按照键盘协议把…

    Linux 2023年6月13日
    0112
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球