所谓事务应具有以下特效:原子性(Atomicity), 一致性(Consistency),隔离性(Isolation),持久性(Durability),简称ACID,但redis所提供的事务比较简单,它通过MULTI、EXEC、DISCARD和WATCH等命令实现事务。

而Redis只支持简单的事务,将执行命令放入队列缓存,当程序中有异常或命令出错,执行DISCARD清空缓存队列不执行队列中命令,其事务过程有以下特点:

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

事务是一个泛原子操作(这里我以泛原子称呼,在某些情况redis的事务不是原子性的,后续会说明):事务中的命令要么全部被执行,要么全部都不执行。

MULTI:开启了一个事务,将需要执行的命令全部入队列。

EXEC:触发一个事务,并且从队列中取出命令依次执行(先入队列的命令先被执行FIFO)

(1)、redis没有回滚机制,因此执行事务过程中出现错误时,需要使用者来处理
(2)、运行过程中出现错误,正确的命令将会被执行。
(3)、如果将要执行的命令出现错误,那么所有的命令将都不会被执行。

在MULTI执行之前,使用WATCH命令监控一个或多个key,如果key有发生变化,则事务不会被执行。
WATCH key [key ...]   #当某个事务需要按条件执行时,就要使用这个命令将给定的键设置为受监控的

redis事务的简单介绍相关推荐

  1. 数据库事务的简单介绍

    事务和锁 一.什么是事务 事务是逻辑上的一组数据库操作,要么都执行,要么都不执行. 例子:假如张三要给李四转账200元,这个转账会涉及到两个关键操作就是:将张三的余额减少200元,将李四的余额增加20 ...

  2. Redis持久化的简单介绍

    Redis的强大功能很大程度上是由于其将所有数据都存储在内存中,为了使Redis在重启后仍能保证数据不丢失,需要将数据从内存中以某种形式持久化到硬盘中. Redis支持两种方式的持久化,一种是RDB方 ...

  3. 数据库事务与锁(一)——事务的简单介绍

    前言 最近系统上线了,这两天收到反馈,操作按钮动不了了.删除按钮动不了了等等类似的问题,仔细查看日志错误,提示:Lock wait timeout exceeded; try restarting t ...

  4. 【修真院JAVA小课堂】redis缓存集群简单介绍

    大家好,我是IT修真院郑州分院第11期的JAVA学员,一枚正直纯洁善良的java程序员. 今天给大家分享一下,redis缓存集群简单介绍. 1.背景介绍 redis是一个key-value存储系统.和 ...

  5. Redis教程–事务机制基本介绍

    摘要:Redis是一个简单.高效的内存数据存储,支持多种数据结构.当然,有数据操作的地方往往都少不了事务性,Redis是否支持呢?答案是肯定的.本文将详细讲述如何redis事务使用相关的内,如有错误, ...

  6. Redis数据库特点的简单介绍

    首先介绍一下Redis,Redis是一个高性能的Key-value数据库,它属于NoSQL数据库. 关于NoSQL数据库我们在这里也做一下简单的介绍,数据库分为关系型数据库比如MySQL和非关系型数据 ...

  7. 关于Redis事务的介绍

    目录 一.Redis事务的本质 二.事务的操作命令 三.不存在原子性 三.不存在隔离性 四.乐观锁 一.Redis事务的本质 Redis事务的本质是一组命令的集合,相当于一个队列,一个事务中的的所有命 ...

  8. 跟我一起学Redis之Redis事务简单了解一下

    前言 关系数据库中的事务,小伙伴们应该是不陌生了,不管是在开发还是在面试过程中,总有两个问题逃不掉: •说说事务的特性:•事务隔离级别是怎么一回事? 事务处理不好,数据就可能不准确,最终就会导致业务出 ...

  9. 天道酬勤系列之Redis 事务的介绍与实例使用

    Redis 事务 Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证: 批量操作在发送 EXEC 命令前被放入队列缓存. 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其 ...

最新文章

  1. 懒人的懒方法之-回车跳转大法
  2. Access denied (java.lang.RuntimePermission getClas
  3. ubuntu 修改environment导致无法启动
  4. 35个不会也要知道的Python小技巧
  5. IDaaS企业身份管理训练营火热报名中 体验新一代企业云身份服务
  6. easyUI validate函数【总结篇-部分转】
  7. sql server 向mysql前移数据-单引号问题
  8. [转载] Python3 String模块ascii_letters和digits
  9. 德国精品软件 Throttle 网络加速软件
  10. 用AWK来过滤nginx日志中的特定值~~~
  11. ImportError: libgfortran.so.4: cannot open shared object file: No such file or directory
  12. html 字体思源_CSS font-family 各字体一览表
  13. ubuntu下格式化U盘
  14. CRM系统更换服务器,CRM系统三种常见安装实施解决方式
  15. 增量式编码器和绝对式编码器
  16. 计算机桌面蓝字,教你电脑桌面图标有蓝色阴影怎么去掉
  17. JAVA经典面试题(来源于互联网)
  18. 演出遭遇枪击 前Pantera吉他手不幸身亡
  19. 任正非:地震中,一座百年前建的教堂不倒所想到的
  20. 中年黑客高考“回忆杀” :如果你想从事安全。。。

热门文章

  1. Ubuntu用户Steam控制器不工作的解决办法
  2. StringBuffer与StringBuilder
  3. About SOuP
  4. java对象和json对象之间互相转换
  5. C语言中的常用文件操作
  6. [文档]. Xilinx - 编写有效的Testbenches
  7. Linux服务器安全设置总结
  8. 计算t-test 的C程序
  9. 读《爱的艺术》书评而问
  10. 多处理机的进程调度方式