Redis学习教程六:事务

一、事务的本质

一组命令的集合。一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行。

二、事务的特性

  • 一次性:指的是Redis中的事务只执行一次,在该事务执行结束之后,这条事务的生命周期就结束了,再次执行事务时需要重新开启事务。
  • 顺序性:指Redis的事务中的所有命令,都是按照先后顺序依次执行的。
  • 排他性:指事务在对某一个数据进行操作的同时,其他事务或其他命令不能对这个数据进行操作。

三、注意

1、redis事务没有隔离级别的概念。所有的命令在事务中,并没有直接执行,只有发起执行命令的时候才
会执行(Exec)
2、redis单条命令是保证原子性的,但是事务不保证原子性

四、操作步骤

1.开启事务(multi)
2.命令入队(正常命令集合)
3.执行事务(exec)

MULTI                 #标记一个事务块的开始。
WATCH key [key ...]   #监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。
UNWATCH               #取消 WATCH 命令对所有 key 的监视。
DISCARD               #取消事务,放弃执行事务块内的所有命令。
EXEC                  #执行所有事务块内的命令。

五、所有情况

  • 正常执行事务
  • 放弃事务
  • 编译型异常(代码有问题命令出错,事务中所有的命令都不会被执行)
  • 运行时异常(IO异常,如果事务队列中存在逻辑问题,那么执行命令的时候,其他命令是可以正常执行的,
    错误命令抛出异常)
Redis学习教程六:事务

原创文章,作者:三酷猫,如若转载,请注明出处:https://www.sankumao.com/2821.html

(0)
上一篇 2022年9月12日 下午9:46
下一篇 2022年9月12日 下午10:30

相关推荐

  • 什么是mysql过程存储?如何编写?

    存储过程:(PROCEDURE)是事先经过编译并存储在数据库中的一段SQL语句的集合。调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数…

    2022年8月13日
  • Mysql复制表

    需求:现在有一张旧表tb2,要复制一张新表tb1。 当然我们可以使用:show create table 旧表; 查看旧表的创建语句,然后把语句copy一下,改个表名就可以了。同时…

    2022年8月13日
  • MySQL什么是笛卡尔现象?消除笛卡尔积现象的解决方法

    当两张表进行连接查询的时候,没有任何条件进行限制,最终的查询结果条数是两张表记录条数的乘积。 笛卡尔现象形成原因 连接条件被省略 连接条件无效 第一个表的所有记录连接到第二个表的所…

    2022年8月13日
  • Mysql常用函数

    SQL中自带很多类型的函数,有字符、数字、日期、转换、和混合型等多种函数用于处理单行数据,因此这些都可被统称为单行函数。这里列举一些常用函数 字符函数 补充1:substring_…

    2022年8月13日
  • Redis学习教程一:简介与安装

    Redis 简介 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 非关系型数据库。主要用来做数据缓存,一般大型网站的应用和数据库之间的那一层就是R…

    2022年9月8日
  • Redis学习教程八:主从复制(读写分离)

    一、主从复制原理 在搭建redis读写分离架构时,master必须开启持久化。 一旦master宕机,虽然slave可以继续提供读服务。但等到master恢复,由于没有持久化,内存…

    2022年9月13日
  • Redis学习教程五:发布订阅

    Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。 Redis 客户端可以订阅任意数量的频道。 下图展示了频…

    2022年9月12日
  • Redis学习教程九:哨兵模式

    在我们上一节:主从复制(读写分离)中,我们可以看到,只有一个Master主机负责写,有多个slave主机负责读。那么如果Master挂了,如何保证可用性,实现继续读写? 什么是哨兵…

    2022年9月13日
  • Redis学习小故事:mysql数据库和redis缓存数据一致性

    一天,老板说「最近公司的用户越来越多了,但是服务器的访问速度越来越差的,阿旺帮我优化下,做好了给你画个饼!」。 程序员阿旺听到老板口中的「画饼」后就非常期待,没有任何犹豫就接下了老…

    2022年9月11日
  • mysql如何创建添加索引?什么是索引?

    一、添加索引 1.添加PRIMARY KEY(主键索引) 2.添加UNIQUE(唯一索引)  3.添加INDEX(普通索引)  4.添加FULLTEXT(全文索…

    2022年11月3日