在关系型数据库中,事务是指一组命令的集合,这组命令构成了一个原子操作,这个操作要么全部执行成功,要么全部执行失败。而在非关系型数据库 Redis 中并非这样…

Redis 中的事务同样也是一组命令的集合,这些命令会按序放入一个队列中,等待执行。与关系型数据库不同的是,Redis 允许这些命令部分执行成功。

Redis 中常用的与事务相关的命令如下:

  • multi:开启一个事务,类似 MySQL 中的 begin transaction

  • discard:回滚事务,类似 MySQL 中的 rowback

  • exec:提交事务,类似 MySQL 中的 commit

Redis 事务有几种玩法?

  • 正常执行:

  • 放弃事务:

  • 全体连坐:

注:如果命令在入队列的时候就发生了错误,将会导致所有命令全部回滚。

  • 冤头债主:

注:如果命令本身的语法并没有错误,只是在事务执行的时候某条命令出了错,那么其他的命令不会回滚,正常执行,出错的命令执行失败。

Redis 事务有哪些特性?

  1. Redis 事务中的所有命令都会存放在队列中按序执行。
  2. Redis 事务中的所有命令在没有提交(exec)之前,都不会执行,所以也就不存在关系型数据库中经常出现的脏读,不可重复读,幻读等并发操作的问题。
  3. Redis 事务不保证原子性,也就是上面说的,命令如果本身的语法没有问题,只是在执行的过程中出错,不影响其他命令的执行。

Redis的事务(一次执行多条命令,防止重读重写)相关推荐

  1. CMD 一条命令 执行 多条命令

    CMD 一条命令 执行 多条命令 如果想一次运行多条命令可能用到的连接符个人了解到的有三个:&&,|| 和 &. aa && bb 含义:执行aa,成功后再执行 ...

  2. (shell脚本编程)linux如何利用脚本执行多条命令以及linux如何执行定时任务

    文章目录 shell脚本编程 条件语句 脚本执行多条命令 执行定时任务 本文着重于提高我们的生产力,所以将这几个作为了一个专题. shell脚本编程 脚本中不同语句用分号隔开,和c语言一样. for, ...

  3. docker多个容器一起打包_如何实现多个docker容器同时执行一条命令?

    我需要实现一个功能:同时创建多个docker容器,并且在这些容器内同时执行一条命令. 我的方法是使用pssh(一个python编写可以在多台服务器上并行执行命令的工具)来连接多个容器,实现同时执行.像 ...

  4. ssh 执行多条命令包含awk的用法

    格式:ssh user@ip command 单条命令:ssh user@ip command1 多条命令:ssh user@ip "command1;command2" 不加双引 ...

  5. shell中执行某条语句失败能不能重复执行_如何重复执行一条命令直至运行成功?...

    大家好,我是良许. 在我们的日常工作中,需要我们重复做的工作简直不能太多.比如,我们想要确认网络是否是连通的,传统的做法就是使用 ping 命令不停去测试某个地址(比如百度).网络比较好还好说,但如果 ...

  6. python重复执行命令_怎样能重复执行一条命令直到运行成功

    在我们的日常工作中,需要我们重复做的工作简直不能太多.比如,我们想要确认网络是否是连通的,传统的做法就是使用 ping 命令不停去测试某个地址(比如百度).网络比较好还好说,但如果网络很差,那么就需要 ...

  7. Linux之SSH远程执行多条命令

    SSH 是 Linux 下进行远程连接的基本工具,不光可以登录,也可以远程操作. 一.执行简单的命令: ssh root@127.0.0.1 "df -h" 一次执行多条命令,使用 ...

  8. Linux Shell语言并发执行多条命令

    shell语言的并发 Default模式下,shell命令是阻塞执行的,可以通过其后添加&让这条命令异步执行,如: sleep 10 & 执行这条命令后,并不会阻塞10秒,而是立即返回 ...

  9. npm一次性执行多条命令

    npm一次性执行多条命令 需求场景 一套代码需要按照不同场景分别进行打包,每次都要执行对应的命令,有几条就要执行几次(手表示不想动) 如何解决: 一.npm并行or继发 npm脚本里面需要执行多个任务 ...

最新文章

  1. OVS DPDK--Ring端口配置(五)
  2. 静态程序分析chapter4 - 基于格(Lattice)理论的数据流分析
  3. 分支合并 Fork-Join 框架
  4. 安装设置Android Studio Win7安装
  5. PYTHON招聘需求与技能体系
  6. 建立数组并写入数据_VBA数组与字典解决方案第37讲:在VBA中字典的应用
  7. 天正坐标标注显示不全_高效率的天正CAD技巧,其实制图很简单!
  8. 11.PHP memcache 与 memcached 区别
  9. 代码制作数字流星雨_C语言实现流星雨 | 学步园
  10. vc2012编译speex (编译通过)
  11. 软件测试中测试文档的编写:测试流程测试用例
  12. 万维考试系统python_万维题库管理系统单机版(万维考试管理软件)V201706 最新官方版...
  13. C语言的lsb算法bmp信息隐藏,基于LSB算法的图像信息隐藏与检测.docx
  14. 【PyQt5 知识点示例代码,2022年抓住金三银四涨薪好时机
  15. 2018/10/25 模拟赛 纸牌
  16. 每个数据科学家都应该知道的10种机器学习方法
  17. 多线程- 让程序更高效的运行
  18. linux中IGV的运行,科学网—使用UCSC和IGV查看reads在基因组上分布情况 - 熊朝亮的博文...
  19. WordPress模板教程
  20. Android 模块 -- 基于XMPP协议的手机多方多端即时通讯方案

热门文章

  1. 单细胞测序分析之小技巧之for循环批量处理数据和出图
  2. 肿瘤化疗无效是对预先存在的突变的选择还是诱发新突变,Cell给你答案
  3. R语言学习 - 非参数法生存分析
  4. IT行业培训必读:优秀程序员的十个习惯
  5. python做炫酷的界面_用python打造可视化爬虫监控系统,酷炫的图形化界面
  6. 调整了canvas的高度页面变化后还原_Web 页面录屏实现
  7. 水文特点是什么意思_水文监测仪器设备简介
  8. 【ES8(2017)】String扩展 padStart / padEnd
  9. 【分享-windows文件快速搜索神器】Everything 免费、快速搜索文件/文件夹
  10. Java笔记-Java端口扫描功能(含TCP包分析以及原理)