返回顶部
首页 > 资讯 > 数据库 >redis事务的使用示例
  • 427
分享到

redis事务的使用示例

2024-04-02 19:04:59 427人浏览 泡泡鱼
摘要

这篇文章主要介绍了Redis事务的使用示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。首先我们来简单介绍下redis事务的本质:  Red

这篇文章主要介绍了Redis事务的使用示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

首先我们来简单介绍下redis事务的本质:

  Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。

  总结说:redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令。  

Redis事务没有隔离级别的概念:

  批量操作在发送 EXEC 命令前被放入队列缓存,并不会被实际执行,也就不存在事务内的查询要看到事务里的更新,事务外查询不能看到。

Redis不保证原子性:

  Redis中,单条命令是原子性执行的,但事务不保证原子性,且没有回滚。事务中任意命令执行失败,其余的命令仍会被执行。

Redis事务的三个阶段:

开始事务命令入队执行事务

Redis事务相关命令:

  watch key1 key2 ... : 监视一或多个key,如果在事务执行之前,被监视的key被其他命令改动,则事务被打断 ( 类似乐观

  multi : 标记一个事务块的开始( queued )

  exec : 执行所有事务块的命令 ( 一旦执行exec后,之前加的监控锁都会被取消掉 ) 

  discard : 取消事务,放弃事务块中的所有命令

  unwatch : 取消watch对所有key的监控

Redis事务使用案例:

(1)正常执行

redis事务的使用示例

(2)放弃事务

redis事务的使用示例

(3)若在事务队列中存在命令性错误(类似于java编译性错误),则执行EXEC命令时,所有命令都不会执行

redis事务的使用示例

(4)若在事务队列中存在语法性错误(类似于java的1/0的运行时异常),则执行EXEC命令时,其他正确命令会被执行,错误命令抛出异常。

redis事务的使用示例

(5)使用watch

案例一:使用watch检测balance,事务期间balance数据未变动,事务执行成功

redis事务的使用示例

案例二:使用watch检测balance,在开启事务后(标注1处),在新窗口执行标注2中的操作,更改balance的值,模拟其他客户端在事务执行期间更改watch监控的数据,然后再执行标注1后命令,执行EXEC后,事务未成功执行。

redis事务的使用示例

一但执行 EXEC 开启事务的执行后,无论事务使用执行成功, WARCH 对变量的监控都将被取消。

故当事务执行失败后,需重新执行WATCH命令对变量进行监控,并开启新的事务进行操作。

总结:

  watch指令类似于乐观锁,在事务提交时,如果watch监控的多个KEY中任何KEY的值已经被其他客户端更改,则使用EXEC执行事务时,事务队列将不会被执行,同时返回Nullmulti-bulk应答以通知调用者事务执行失败。

感谢你能够认真阅读完这篇文章,希望小编分享的“redis事务的使用示例”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网数据库频道,更多相关知识等着你来学习!

您可能感兴趣的文档:

--结束END--

本文标题: redis事务的使用示例

本文链接: https://lsjlt.com/news/54936.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • redis事务的使用示例
    这篇文章主要介绍了redis事务的使用示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。首先我们来简单介绍下redis事务的本质:  Red...
    99+
    2024-04-02
  • redis事务的示例分析
    这篇文章将为大家详细讲解有关redis事务的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一: 事务实战具体到事务是什么,要保证什么。。。这个我想没必要...
    99+
    2024-04-02
  • Lumen使用Redis的示例
    这篇文章将为大家详细讲解有关Lumen使用Redis的示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 安装扩展要使用redis必须安装两个扩展 comp...
    99+
    2024-04-02
  • redis中事务操作的示例分析
    这篇文章主要介绍了redis中事务操作的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。redis与mysql的事务Redis支持简单...
    99+
    2024-04-02
  • Redis中Bitmap的使用示例
    目录位图应用原理位图常用命令1) SETBIT命令2) GETBIT命令3) BITCOUNT命令4)Redis Bitop 命令场景统计当日活跃用户用户签到在日常开发过程中,经常会...
    99+
    2024-04-02
  • PHP使用Redis的事务命令
    1.redis事务命令: 命令作用返回值 watch 监视一个或多个key 总是OK multi 声明事务开始,后续命令将排队按顺序等待exec执行 总是OK exec 顺序执行multi之后的命令,如果mult...
    99+
    2018-10-22
    PHP使用Redis的事务命令
  • SpringBoot2.4.2下使用Redis配置Lettuce的示例
    目录1. Springboot2.4.2下对Redis的基础集成1.1 maven添加依赖1.2 添加Redis配置文件1.3 注册RedisTemplate和StringRedis...
    99+
    2024-04-02
  • Redis事务的应用
        redis对事务的支持目前还比较简单。redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。 由于redi...
    99+
    2024-04-02
  • redis事务的用法
    这篇文章将为大家详细讲解有关redis事务的用法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Redis事务MULTI, EXEC, DISCARD and WATCH ...
    99+
    2024-04-02
  • Redis中安装与使用的示例分析
    这篇文章主要介绍Redis中安装与使用的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、下载:项目地址:https://github.com/MSOpenTech/redi...
    99+
    2024-04-02
  • Redis工具类封装RedisUtils的使用示例
    此RedisUtil工具类的功能: 直接使用此RedisUtil工具类的所需条件: 项目基于SpringBoot。pom.xml中需要引入依赖spring-boot-starter...
    99+
    2024-04-02
  • MySQL事务的示例分析
    这篇文章将为大家详细讲解有关MySQL事务的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。ACID 特性事务处理是一种对必须整批执行的 MySQL 操作的管理机制...
    99+
    2024-04-02
  • Hibernate事务的示例分析
    小编给大家分享一下Hibernate事务的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Hibernate是JDBC的轻量级封装,本身并不具备事务管理能力...
    99+
    2023-06-17
  • SqlServer存储过程中使用事务,示例模版
    create proc pro_GetProTrans @GoodsId int, @Number int, @StockPrice money, @SupplierId int, @EmpId int, @StockUnit varch...
    99+
    2018-03-13
    SqlServer存储过程中使用事务,示例模版 数据库入门 数据库基础教程
  • redis中事务命令的介绍和使用
    这篇文章将为大家详细讲解有关redis中事务命令的介绍和使用,文章内容质量较高,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、概述:Redis 事务的本质是一组命令的集合。事务支持一次执...
    99+
    2024-04-02
  • Redis事务处理的使用操作方法
    一、简介         Redis采用了乐观锁方式进行事务控制,它使用watch命令监视给定的key...
    99+
    2024-04-02
  • Jedis使用Redis事务的方法是什么
    本篇内容主要讲解“Jedis使用Redis事务的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Jedis使用Redis事务的方法是什么”吧!什么是Jedis什么是Jedis 是Redi...
    99+
    2023-07-05
  • redis中限流的应用示例
    小编给大家分享一下redis中限流的应用示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!为什么要做限流首先让我们先看一看系统架构设计中,为什么要做“限流”。旅游...
    99+
    2023-06-14
  • 使用redis数据库存储用户信息的示例
    这篇文章给大家分享的是有关使用redis数据库存储用户信息的示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。比较推荐的方式是使用redis数据库中的hash类型来存储。当然使用...
    99+
    2024-04-02
  • 关于Jedis的用法以及Jedis使用Redis事务
    目录什么是Jedis测试Stringlistsethashzset事务总结我们要使用java来操作redis 什么是Jedis 什么是Jedis 是Redis官方推荐的java连接开...
    99+
    2023-03-19
    Jedis用法 Jedis使用Redis事务 Jedis Redis事务
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作