美文网首页
redis 事务机制

redis 事务机制

作者: 大步向前blue | 来源:发表于2018-01-26 14:23 被阅读13次

redis中提供了事务处理机制。事务的两个主要特点:

    1.  隔离性  ,事务中的命令都会被序列化,按顺序去执行,不会被外来的请求所打断

   2.  原子性 ,  事务中的所有命令你可以看成是一个整体,要成功则都成功,要失败,则都失败。

开启事务的常规步骤:

第一步:   multi  命令  用来开启事务。  其实此时redis会为当前的连接的redis 客户端开辟一个  队列出来,然后后续的命令就好添加到这个队列中。

第二部:  正常执行我们想要执行的命令,例如:   set  name 'xiaohua'

第三步:  exec  命令 用来提交事务。  此时添加在队列中的所有命令就会真的一条一条去执行。

例子1  -  正常步骤

注释: 

            当开启事务后, 每成功执行一条命令后,返回的值是  ‘queued’  ,  表示入队成功。

扩展:

           redis中的乐观锁   check-add-set  机制  ------------------------  watch

incr  实现模拟  例子
---------------------------------------------------------------------------------------------------------------------
multi
num1 = get num
num1 = num1 + 1
exec

        如果 是当个客户运行上面的例子是没有什么问题的,如果是多个用户的话,那么就会出现并发问题。如果num1  本来是1  , 客户A 运行了上面的代码  变成了  2  ,可是 如何客户B是跟客户A 同时刻运行的,此时  num1  应该  是3  才对, 而不应该是2。 为了解决这种并发问题,redis采用了  check-add-set  这种乐观锁的机制来解决这种原子性的问题。   就是  通过  watch命令去监控一个或者多个键,如果发现它的值发生了变化,那么当前的redis所执行的事务将会取消掉,即通过multi 命令生成的队列,里面装的命令就会清空掉。监控的键是在执行了watch命令后才生效。

取消事务 ----------   discard  命令

注意:   如上图,我们可以看出,当运行  discard  后,得到的结果 不再是  queued  这种入队成功的标识了。而在它之前并在 multi之后的都是  queued  标识。  而  discard  后面设置的命令都是ok, 说明   discard  执行后,  整个事务命令队列就销毁了。

相关文章

  • Redis事务

    redis事务机制 Redis事务与传统关系型事务的比较

  • Redis学习笔记-2

    Redis是事务机制 Redis不支持事务的回滚机制,当事务发生错误,整个事务会继续执行下去,直到整个事务队列中所...

  • redis 常用指令

    Redis 的事务 Redis 的事务处理与 RDBMS 的事务有一些不同。首先 Redis 不支持事务的回滚机制...

  • redis事务机制

    一、相关命令 1. MULTI (事物的开始) 用于标记事务块的开始。Redis会将后续的命令逐个放入队列中,然后...

  • redis 事务机制

    redis中提供了事务处理机制。事务的两个主要特点: 1. 隔离性 ,事务中的命令都会被序列化,按顺序去执行,...

  • Redis事务

    1、Redis事务机制 严格意义来讲,Redis的事务和我们理解的传统数据库(如mysql)的事务是不一样的。Re...

  • redis事务以及watch的理解

    事务的特性 实现的机制 WATCH 原理 [参考自redis设计与实现:第19章 事务]

  • Redis实例发生故障,而Redis使用RDB机制,事务的原子性

    Redis实例发生故障,而Redis使用的RDB机制,事务的原子性还能否得到保证? 干货:[公粽号:堆栈futur...

  • Redis - 事务

    Redis - 事务 事务提供了一种将多个命令打包,然后一次性、有序地执行的机制。 多个命令会被入队到事务队列中,...

  • Redis事务_锁机制——秒杀★★★

    Redis6总纲 https://www.jianshu.com/p/901dc5a0c683[https://w...

网友评论

      本文标题:redis 事务机制

      本文链接:https://www.haomeiwen.com/subject/tbpiaxtx.html