Redis事务机制--基本命令与ACID

本文介绍了Redis的事务机制,包括multi/exec、discard命令的使用,以及watch命令在事务监控中的作用。在ACID特性方面,讨论了Redis事务的非原子性、一致性(错误处理)和隔离性(通过WATCH实现),并指出事务的持久性依赖于Redis的持久化模式(RDB和AOF)。
摘要由CSDN通过智能技术生成

一、redis事务基本命令

1、multi与exec命令

              用multi开启一个事务,执行多条命令入队到事务中,最后由exec命令触发事务,执行事务中的所有命令

2、discard命令

              discard命令用于取消事务,清空事务中的队列,将客户端调整为非事务状态

3、watch命令

              watch命令用于在事务开启之前监视任意数量的键,当调用exec命令执行食物是,若该键被其他客户端修改,那么整个   事务不再执行,直接返回失败

4、redis执行事务过程原理图解

二、redis事务之ACID

1、原子性(atomicity)(操作要么都执行要么都不执行)

     单个的redis命令的执行是原子性额,但redis没有在事务上增加任何维持原子性的机制,所以redis事务的执行不是原子性

     如果一个事务队列中的所有命令都被成功执行,那么称这个事务执行成功。

 2、一致性(consistency)(应满足完整性约束)

      入队错误:在命令入队过程中,如果客户端向服务端发送了错误的命令,比如命令的参数数量不对等,那么服务器将返回一  个错误信息,并将客户端的事务状态设为REDIS_DIRTY_EXEC

      执行错误:命令在事务执行过程中发生错误,比如对一个不同类型的key执行了错误操作,那么redis只会将错误包含在事务     结果中,不会引起事务中断或失败,也不会影响已执行事务的结果,故对事务的一致性没影响

3、隔离性(isolation)

     WATCH 命令用于在事务开始之前监视任意数量的键: 当调用 EXEC 命令执行事务时, 如果任意一个被监视的键已经被其他       客户端修改了, 那么整个事务不再执行, 直接返回失败。

4、持久性(durability)

     因为事务只是用队列包裹一组redis命令,并没有提供任何额外的持久性功能,所以事务的持久性功能由redis所使用的持久化       模式决定        【redis持久化模式:rdb(数据内存备份)、aof(append only if增量备份,每隔一秒做一次备份)】

      

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值