iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >redis中事务操作的示例分析
  • 654
分享到

redis中事务操作的示例分析

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

这篇文章主要介绍了Redis中事务操作的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。redis与mysql的事务Redis支持简单

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

redis与mysql的事务

Redis支持简单的事务

redis中事务操作的示例分析

简单使用

讲张三的100圆钱转账给lisi:

set zhangsan 800
set lisi 100
multi
decrby zhangsan 100
incrby lisi 100
exec

失败的两种情况

在mutil后面的语句中, 语句出错可能有2种情况,还是以转账的情况来分析:

(1)语法就有问题

127.0.0.1:6379> multi
OK
127.0.0.1:6379> decrby zhang 100
QUEUED
127.0.0.1:6379> hasdfasdf
(error) ERR unknown command 'hasdfasdf'
127.0.0.1:6379> exec
(error) EXECABORT Transaction discarded because of previous errors.
127.0.0.1:6379> mget zhang wang
1) "800"
2) "100"

这种,exec时,报错, 所有语句得不到执行,所以还是800和100圆

(2)语法本身没错,但适用对象有问题

127.0.0.1:6379> multi
OK
127.0.0.1:6379> decrby zhang 100
QUEUED
127.0.0.1:6379> sadd wang 1
QUEUED
127.0.0.1:6379> exec
1) (integer) 700
2) (error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> mget zhang wang
1) "700"
2) "100"

Exec之后,会执行正确的语句,并跳过有不适当的语句,所以这里是一个700圆一个100圆了

案例

假设买票案例,当前只有1张票和100块钱,如果我在买票的过程中,在我multi之后,和exec之前,票被别人买了—即ticket已经变成0了,然后我们执行exec的时候就会将票变为-1,这就不对了。

127.0.0.1:6379> set ticket 1
OK
127.0.0.1:6379> set money 100
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379> decr ticket
QUEUED
127.0.0.1:6379> decrby money 10

QUEUED
127.0.0.1:6379> exec
1) (integer) -1
2) (integer) 90

使用watch来检测票有没有被买走

实用watch来检测指定的key,负责监测key没有被改动。

127.0.0.1:6379> set ticket 1
OK
127.0.0.1:6379> set money 100
OK
127.0.0.1:6379> watch ticket
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379> decr ticket
QUEUED
127.0.0.1:6379> decrby money 10
QUEUED
127.0.0.1:6379> exec
(nil)//返回nil,说明监视的ticket已经改变了,事务就取消了.
127.0.0.1:6379> mget ticket money
1) "0"
2) "100"

在执行exec之前,票被买走了,ticket为0了,然后执行exec后,发现ticket被动了,所以就不执行事务了,事务被取消了。在执行exec的时候返回nil

watch相关用法

watch key1 key2 ... keyN

作用:监听key1 key2..keyN有没有变化,如果有变, 则事务取消

unwatch

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

您可能感兴趣的文档:

--结束END--

本文标题: redis中事务操作的示例分析

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • redis中事务操作的示例分析
    这篇文章主要介绍了redis中事务操作的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。redis与mysql的事务Redis支持简单...
    99+
    2024-04-02
  • redis事务的示例分析
    这篇文章将为大家详细讲解有关redis事务的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一: 事务实战具体到事务是什么,要保证什么。。。这个我想没必要...
    99+
    2024-04-02
  • Redis中慢查询操作的示例分析
    这篇文章将为大家详细讲解有关Redis中慢查询操作的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是慢查询慢查询的作用:通过慢查询分析,找到有问题的命令进行优...
    99+
    2024-04-02
  • WCF事物操作的示例分析
    这篇文章将为大家详细讲解有关WCF事物操作的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。指定了TransactionFlow(TransactionFlowOption.Mandatory),而...
    99+
    2023-06-17
  • js中DOM事件常见操作的示例分析
    这篇文章主要介绍js中DOM事件常见操作的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、JavaScript的组成JavaScript基础分为三个部分:ECMAScrip...
    99+
    2024-04-02
  • Python中opencv操作的示例分析
    这篇文章主要介绍Python中opencv操作的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!直接读取图片def display_img(file="p.jpeg"): ...
    99+
    2023-06-14
  • VB.NET中EXCEL操作的示例分析
    这篇文章将为大家详细讲解有关VB.NET中EXCEL操作的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。EXCEL的宏功能:EXCEL提供一个Visual Basic编辑器,打开Visual Ba...
    99+
    2023-06-17
  • Mysql中join操作的示例分析
    小编给大家分享一下Mysql中join操作的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!join的类型1.  ...
    99+
    2024-04-02
  • JavaScript中DOM操作的示例分析
    这篇文章主要介绍JavaScript中DOM操作的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:一、DOM概念1. "D":Docment,指的...
    99+
    2024-04-02
  • SQL中DDL操作的示例分析
    这篇文章给大家分享的是有关SQL中DDL操作的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 1、数据库对象    表&...
    99+
    2024-04-02
  • Redis中配置、启动、操作和关闭的示例分析
    这篇文章主要为大家展示了“Redis中配置、启动、操作和关闭的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Redis中配置、启动、操作和关闭的示例分析...
    99+
    2024-04-02
  • Redis中过期操作和过期策略的示例分析
    这篇文章主要介绍Redis中过期操作和过期策略的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!过期操作过期设置Redis 中设置过期时间主要通过以下四种方式:expire k...
    99+
    2024-04-02
  • Dos中Shell操作的示例分析
    这篇文章主要介绍了Dos中Shell操作的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码如下:@echo off //不列出执行过程 cd test\ //移到该...
    99+
    2023-06-09
  • Redis中数据结构与数据操作的示例分析
    小编给大家分享一下Redis中数据结构与数据操作的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Redis完成数据操作的...
    99+
    2024-04-02
  • Jedis对redis五大类型操作的示例分析
    小编给大家分享一下Jedis对redis五大类型操作的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!JedisUtil这里的测试用例采用junit4进行运行,准备代码如下:private static&n...
    99+
    2023-05-30
    redis jedis
  • redis之List操作的案例分析
    小编给大家分享一下redis之List操作的案例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!List操作,redis中的L...
    99+
    2024-04-02
  • redis原子操作实例分析
    这篇“redis原子操作实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“redis原...
    99+
    2024-04-02
  • mysql中in操作符的示例分析
    这篇文章给大家分享的是有关mysql中in操作符的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在之前学习其他模块的时候,我们接触到了in操作符,不过在mysql数据库中很多人就不知道怎么运用了。我们今天...
    99+
    2023-06-14
  • jquery中回调操作的示例分析
    这篇文章将为大家详细讲解有关jquery中回调操作的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:jquery 回调成功的情况node2:/django...
    99+
    2024-04-02
  • jQuery中CSS-DOM操作的示例分析
    这篇文章主要为大家展示了“jQuery中CSS-DOM操作的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery中CSS-DOM操作的示例分析”这篇文章吧。除了css()以外,还有...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作