Redis 学习之事务以及锁机制

版权声明:本文为博主原创文章,欢迎分享转载。 https://blog.csdn.net/qq_29897369/article/details/87907753

说起事务就不得不提数据库事务,比如mysql

mysql redis
开启事务 start transaction multi
形式 sql语句 普通命令
失败处理 rollback 回滚 discard 取消
成功 commit exec

注: 在mutil后面的语句中, 语句出错可能有2种情况
1: 语法就有问题,
这种,exec时,报错, 所有语句得不到执行
2: 语法本身没错,但适用对象有问题. 比如 zadd 操作list对象
Exec之后,会执行正确的语句,并跳过有不适当的语句.

mysql 事务demo

SELECT *FROM tb_account
INSERT INTO tb_account VALUES(2,100,'YY');
START TRANSACTION;
UPDATE tb_account SET money = money - 100 WHERE id = 1;
ROLLBACK

redis 事务 demo
在这里插入图片描述redis 锁机制–乐观锁
什么情景会出现锁机制呢?
当我们买票的时候 看到还剩一张 但是在点击购买的时候到 提交事务之间 别人已经提交成功购买成功。所以出现锁机制。
悲观锁
世界充满危险,肯定有人和我抢, 给 ticket上锁, 只有我能操作. [悲观锁]
乐观锁
没有那么人和我抢,因此,我只需要注意,有没有人更改票的值就可以了 [乐观锁]
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_29897369/article/details/87907753