Redis中事务的使用
来源:互联网 发布:android app商城源码 编辑:程序博客网 时间:2024/06/06 03:14
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中任意一个发生改变,事务都将无法执行
1 0
- Redis中事务的使用
- redis中事务(Transaction)的使用
- Redis的事务之watch使用
- Redis事务使用
- Redis事务使用总结
- redis--事务--简单使用
- SQLHelp中事务的使用
- JDBC中事务的使用
- .net中事务的使用
- 事务中savepoint的使用
- JDBC中事务的使用
- JDBC中事务的使用
- 数据库中事务的使用
- JDBC中事务的使用
- JDBC中事务的使用
- 事务中savepoint的使用
- JDBC中事务的使用
- redis的事务
- 使用conda安装Python第三方工具包
- 【鼓捣树莓派】动态网页控制lcd显示
- Maximum GCD
- LeetCode-542. 01 Matrix (JAVA)零一矩阵
- Java设计模式之责任链模式
- Redis中事务的使用
- 深入理解volatile与synchronized
- jqgrid学习(四)主要问题
- Android Preference详解之初识Preference及Preference系(一)
- Android适配(屏幕适配、国际化适配)
- mysql源码安装
- 缓冲区溢出原理及教学版攻击演示
- rman理论(一)
- 非事务性操作在多线程下带来的坑