redis中事务操作的示例分析
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章主要介绍了redis中事务操作的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。redis与mysql的事务Redis支
千家信息网最后更新 2025年01月22日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安全错误
数据库的锁怎样保障安全
贵州都匀服务器虚拟主机
河南安防卫星授时服务器虚拟主机
确保配置管理数据库被正确更新
2u服务器 噪声
海尔网络安全
如何打开服务器管理器界面
深瑞银网络技术
网络安全月薪
网络技术主修什么
小学生网络安全辩论稿
沐思想互联网科技有限公司
苹果软件开发哪家公司好
toad 导出数据库
数据库原理第二章测试
友邦保险数据库开发如何
京东云服务器支出
免费的ntp服务器
广西 集翔网络技术支持
网络安全的目标就是
net api连接数据库
中央电视台网络安全局
吉林便民平台软件开发公司
第三季度网络安全事件
excel 实现 数据库
奇迹sql数据库怎么卸载
海口app软件开发解决方案
网络安全概念股龙头
pg数据库搭建
纵横软件开发有限公司
数据库加一列代码