使用Redis实现秒杀功能的简单方法

1. 怎样预防数据库超售现象

设置数据库事务的隔离级别为serializable(不可用)

serializable就是让数据库去串行化的去执行事务,一个事务执行完才能去执行下一个事务,效率太慢

在数据表上设置乐观锁字段,例如设置版本号(version)

不同事务在执行更新操作时,需要先判断一下版本号是否已被修改

代码实现乐观锁流程

1.1. 什么表需要设置乐观锁

出现同时修改同一条记录的业务,相应的数据表要设置乐观锁

不会出现同时修改同一记录的数据库,就不需要设置乐观锁

2. 利用redis防止超售

为了保证事务的一致性,在开启事务之前必须要用watch命令监视要操作的记录

使用multi命令开启一个事务

开启事务后的所有操作都不会立即执行,只有执行exec命令的时候才会批处理执行

spring-boot 引入 redis 依赖

实现代码

总结

到此这篇关于使用redis实现秒杀功能的文章就介绍到这了,更多相关redis秒杀功能内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐