从输入Multi命令开始,输入的命令都会依次进入命令队列中,但不会执行,至到输入Exec后,Redis会将之前的命令队列中的命令依次执行。
multi命令开启事务,exec命令提交事务。127.0.0.1:6379> multiOK127.0.0.1:6379(TX)> set k1 v1QUEUED127.0.0.1:6379(TX)> set k2 v2QUEUED127.0.0.1:6379(TX)> exec1) OK2) OK127.0.0.1:6379>
组队的过程中可以通过discard来放弃组队。127.0.0.1:6379> multiOK127.0.0.1:6379(TX)> set k3 v3QUEUED127.0.0.1:6379(TX)> set k4 v4QUEUED127.0.0.1:6379(TX)> discardOK127.0.0.1:6379>
事务中的错误处理:1:组队中某个命令出现了报告错误,执行时整个的所有队列会都会被取消。127.0.0.1:6379> multiOK127.0.0.1:6379(TX)> set b1 v1QUEUED127.0.0.1:6379(TX)> set kes(error) ERR wrong number of arguments for 'set' command127.0.0.1:6379(TX)> exec(error) EXECABORT Transaction discarded because of previous errors.127.0.0.1:6379> 2:如果执行阶段某个命令报出了错误,则只有报错的命令不会被执行,而其他的命令都会执行,不会回滚。127.0.0.1:6379> multiOK127.0.0.1:6379(TX)> set b1 v1QUEUED127.0.0.1:6379(TX)> incr b1QUEUED127.0.0.1:6379(TX)> set b2 v2QUEUED127.0.0.1:6379(TX)> exec1) OK2) (error) ERR value is not an integer or out of range3) OK127.0.0.1:6379> keys *1) "b2"2) "b1"127.0.0.1:6379> 三特性一:单独的隔离操作 事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。二:没有隔离级别的概念 队列中的命令没有提交之前都不会实际的被执行,因为事务提交前任何指令都不会被实际执行,也就不存在“事务内的查询要看到事务里的更新,在事务外查询不能看到”这个让人万分头痛的问题 三:不保证原子性 Redis同一个事务中如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚 

Redis中的事务和三特性相关推荐

  1. Redis初学:14(Redis中的事务)

    Redis中的事务 Redis的事务定义 Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化.按顺序地执行.事务在执行的过程中,不会被其他客户端发送来的命令请求所打断. Redis事务的主 ...

  2. redis中的事务、lua脚本和管道的使用场景

    https://blog.csdn.net/fangjian1204/article/details/50585080 事务 redis中的事务并不像mysql中那么完美,只是简单的保证了原子性.re ...

  3. Redis系列之key操作命令与Redis中的事务详解(六)

    From: http://www.cnblogs.com/knowledgesea/p/5008594.html 序言 本篇主要目的有二: 1.展示所有数据类型中key的所有操作命令,以供大家学习,查 ...

  4. 【承】Redis 原理篇——关于 Redis 中的事务

    前言 关于 Redis 的"起承转合",我前面已经用五个篇章的长度作了一个 Redis 基础篇--"起"篇的详细阐述,相信大家无论之前有没有接触过 Redis, ...

  5. MySQL数据库中的事务(四大特性)

    1. 事务的介绍 事务就是用户定义的一系列执行SQL语句的操作, 这些操作要么完全地执行,要么完全地都不执行, 它是一个不可分割的工作执行单元. 2. 事务的四大特性 原子性(Atomicity) 一 ...

  6. 如何理解Redis中的事务

    1.Redis事务 Redis的事务是通过multi.exec.discard和watch这四个命令来完成的. Redis的单个命令都是原子性的,所以这里需要确保事务性的对象是命令集合. Redis将 ...

  7. Redis中的事务和watch(乐观锁)

    Redis单条命令式保存原子性的,但是事务不保证原子性! Redis事务本质:一组命令的集合,一个事务中的所有命令都会被序列化,在事务执行过程的中,会按照顺序执行 所有的命令在事务中,并没有直接被执行 ...

  8. Redis中五大基本数据类型和三种特殊数据类型详解

    目录 介绍 概念 基本命令 redis是单线程的 五大基本数据类型 String 命令 应用场景 List 命令 应用场景 Set 命令 应用场景 Hash 命令 应用场景 Zset 命令 应用场景 ...

  9. Redis中事务用法详解

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

  10. mysql 事务回滚_简短截说阐述redis中事务的使用

    我们知道,在关系型数据库中,比如mysql,如果要使用事务,首先向数据库服务器发送 BEGIN ,然后执行各个相互一致的写操作和读操作,最后,用户可以选择发送 COMMIT 来确认之前所做的修改,或者 ...

最新文章

  1. 用微信点单 订餐系统打造属于个人的O2O外卖订餐行业商业平台
  2. Spark Streaming高级特性在NDCG计算实践
  3. (十)MySQL日志
  4. obj.href 与 obj.getAttribute(href)的区别
  5. SpringBoot学习之文件结构和配置文件
  6. 不忘初心,不负韶华——2021年中会议发言之一
  7. Ubuntu 解锁被锁定的账号
  8. Ventoy+WePE 装机教程
  9. B站高清视频下载方法揭密
  10. Android 系统(44)---多语言
  11. LaTeX矩阵广义逆、伪逆
  12. php微信获取openid_PHP微信网页授权获取OPENID
  13. 独木舟上的旅行(贪心)C/C++
  14. Debian启动自定义桌面
  15. css动画效果制作正方体旋转相册
  16. 西瓜创客联创刘鹏:在AI的曙光中拥抱教育的未来
  17. 怎么把图片转换成Tikz图片
  18. 想要写好文案,就要学习这八种动物
  19. 阿里云轻量应用服务器开启minecraft基岩版服务器(bedrock)
  20. html中无语义的标签,HTML5 语义元素

热门文章

  1. 新浪微博html不完整,新浪微博显示不正常怎么解决
  2. 如何批量导入文件夹,批量重命名
  3. graphpad做单因素方差分析_如何使用Graphpad做单因素方差分析
  4. 随笔之---java版本哲学家就餐问题【信号量的实现】
  5. 【黑马程序员】新的开始
  6. 36D杯CTF Re WP
  7. 关于antd table展开行expandable的坑和解决办法
  8. 分享一个我常用的信息差赚钱渠道
  9. separating axis test——分离轴测试算法的实现
  10. windows 启动参数