Redis中事务的使用

1.Redis与MySQL事务对比


(1)rollback与discard的区别:
如果已经成功执行了2条语句,第3条出错
rollback后,前2条语句造成的影响消失
discard前2条语句造成的影响仍然存在
(2)multi后面的语句出错可能有两种情况:
a.语法本身有问题,这种情况所有语句都不会执行
b.语法本身没有问题,但适用对象有问题,比方使用zadd命令操作lists对象。exec后,执行正确的语句,跳过不适当的语句
(3)思考买票的场景
假设现在只有一张票,而买票的人很多,因此就要注意自己买票时是否还有余票
redis的事务中,启动的是乐观锁,只负责监视key有没有被改动
set number 1 //票的数量为1张
set money 100 //账户余额为100
watch number money //为了保证有票及账户余额充足,这里两个都监视
multi //开启事务
decr number //票数减一
decyby money 55 //账户余额减少
exec //执行事务
为了测试,可再开启一个终端,在exec前修改number和money的值,观察执行的结果
可以看到,number和money中任意一个发生改变,事务都将无法执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值