6.Redis事务

redis事务可以一次执行多个命令(按顺序的串行话执行,执行中不会被其他命令插入,不许加塞)

简介

redis事务可以一次执行多个命令(允许在一次单独的步骤中执行一组命令),并且带有一下两个重要保证

批量操作在发送EXEC命令前被放入队列缓存。
收到exec命令后industry事务执行,事务中任意命令实行失败,其余的命令依然执行
在事务执行过程中,其他客户端提交的命令请求不会插入到事务执行命令序列中

1.Redis会将一个事务中的所有命令序列化,然后按序执行
2.执行不会被其他命令插入,不许出现加塞行为

常用命令

discard :取消事务,放弃执行事务块内的所有命令
exec: 执行所有事务块内的命令
mulit:标记一个事务的开始
unwatch:取消watch命令对于所有key的监视
watch : 监视一个或者多个key,如果在事务执行之前这个或者这些个key被其他命令所改动,那么事务将被打断

一个事务从开始到执行会经历一下三个阶段:
开始事务
命令入队
执行事务

示例:
A向B转账50元
在这里插入图片描述

应用场景

一组命令必须同时都执行,或者都不执行,我们要保证一组命令在执行过程中不被其他命令插入。

案例:
秒杀:

商品秒杀        14:00    秒杀100部手机

key:存入100手机  编号:list

秒杀流程:
如果一个用户只能抢一个手机
如果抢成功:用户名  ,存入抢成功的手机编号,存入新的集合list
在初始化商品库中移除抢到的手机编号
原创文章 153 获赞 71 访问量 4万+

猜你喜欢

转载自blog.csdn.net/mzc_love/article/details/105855852