redis中事务操作的示例分析
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍了redis中事务操作的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。redis与mysql的事务Redis支
千家信息网最后更新 2025年11月07日redis中事务操作的示例分析
这篇文章主要介绍了redis中事务操作的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
redis与mysql的事务
Redis支持简单的事务
简单使用
讲张三的100圆钱转账给lisi:
set zhangsan 800set lisi 100multidecrby zhangsan 100incrby lisi 100exec
失败的两种情况
在mutil后面的语句中, 语句出错可能有2种情况,还是以转账的情况来分析:
(1)语法就有问题
127.0.0.1:6379> multiOK127.0.0.1:6379> decrby zhang 100QUEUED127.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 wang1) "800"2) "100"
这种,exec时,报错, 所有语句得不到执行,所以还是800和100圆
(2)语法本身没错,但适用对象有问题
127.0.0.1:6379> multiOK127.0.0.1:6379> decrby zhang 100QUEUED127.0.0.1:6379> sadd wang 1QUEUED127.0.0.1:6379> exec1) (integer) 7002) (error) WRONGTYPE Operation against a key holding the wrong kind of value127.0.0.1:6379> mget zhang wang1) "700"2) "100"
Exec之后,会执行正确的语句,并跳过有不适当的语句,所以这里是一个700圆一个100圆了
案例
假设买票案例,当前只有1张票和100块钱,如果我在买票的过程中,在我multi之后,和exec之前,票被别人买了-即ticket已经变成0了,然后我们执行exec的时候就会将票变为-1,这就不对了。
127.0.0.1:6379> set ticket 1OK127.0.0.1:6379> set money 100OK127.0.0.1:6379> multiOK127.0.0.1:6379> decr ticketQUEUED127.0.0.1:6379> decrby money 10QUEUED127.0.0.1:6379> exec1) (integer) -12) (integer) 90
使用watch来检测票有没有被买走
实用watch来检测指定的key,负责监测key没有被改动。
127.0.0.1:6379> set ticket 1OK127.0.0.1:6379> set money 100OK127.0.0.1:6379> watch ticketOK127.0.0.1:6379> multiOK127.0.0.1:6379> decr ticketQUEUED127.0.0.1:6379> decrby money 10QUEUED127.0.0.1:6379> exec(nil)//返回nil,说明监视的ticket已经改变了,事务就取消了.127.0.0.1:6379> mget ticket money1) "0"2) "100"
在执行exec之前,票被买走了,ticket为0了,然后执行exec后,发现ticket被动了,所以就不执行事务了,事务被取消了。在执行exec的时候返回nil。
watch相关用法
watch key1 key2 ... keyN
作用:监听key1 key2..keyN有没有变化,如果有变, 则事务取消
unwatch
感谢你能够认真阅读完这篇文章,希望小编分享的"redis中事务操作的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
事务
语句
篇文章
分析
情况
示例
时候
案例
语法
还是
问题
支持
检测
转账
不对
实用
适当
价值
作用
兴趣
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
移动互联网科技基金
福州软件开发培训机构哪家好
c 中转服务器
软件开发机构市场要求
广州专业软件开发价格走势
如何下载uci数据库
海外网络服务器ip免费地址
网络技术服务税收
软件开发中的高级语言
贵州国家大数据库
离线服务器
ctid签名服务器有哪些品牌
云服务器配置php环境视频教程
进去医院his数据库
app软件开发哪家好怎么样
cf新手回归服务器创建房间
软件开发形式化方法学什么
女计算机应用技术网络技术
威海教育系统开展网络安全宣传周
郑州办公系统软件开发哪家好
移动互联网科技基金
网络安全保险的需求性
搭建云免服务器
王者荣耀里面没有服务器怎么办
代码建数据库
电科院网络安全工作总结
软件开发过程中费用最多的
软件开发买笔记本
清除数据库表缓存
大连市互联网科技公司