【Redis】实现异步秒杀功能

一、将判断条件提前缓存到redis中

将判断条件缓存到redis中,如果判断成功直接操作redis中的数据,然后将数据写入redis,如果成功返回一个值。然后根据这个值判断是否成功,如果成功把用户id,优惠卷id,订单id存入阻塞队列中,开启新线程将阻塞队列的数据与数据库进行异步操作查询下单等操作,提供效率。

进行秒杀业务优化的思路就是,先进行判断返回结果。至于后面的操作把需要的信息加入阻塞队列,然后把阻塞队列里的信息异步交给别的线程操作。不过基于内存保存订单信息,如果宕机了,redis中存的数据丢失,后端异步操作的信息还没存入数据库,会有数据不一致问题。可以用消息队列进行操作,这样它会有持久化机制,即使内存中数据丢失,硬盘的数据还会存在。

相关推荐
Amctwd7 分钟前
【SQL】如何在 SQL 中统计结构化字符串的特征频率
数据库·sql
工一木子13 分钟前
【Java项目脚手架系列】第七篇:Spring Boot + Redis项目脚手架
java·spring boot·redis
哞哞不熬夜25 分钟前
JavaEE--初识网络
java·网络·java-ee
等等54337 分钟前
Java EE初阶——wait 和 notify
java·开发语言
betazhou43 分钟前
基于Linux环境实现Oracle goldengate远程抽取MySQL同步数据到MySQL
linux·数据库·mysql·oracle·ogg
API小爬虫1 小时前
淘宝按图搜索商品(拍立淘)Java 爬虫实战指南
java·爬虫·图搜索算法
lyrhhhhhhhh1 小时前
Spring 框架 JDBC 模板技术详解
java·数据库·spring
亚林瓜子2 小时前
AWS Elastic Beanstalk控制台部署Spring极简工程
java·spring·云计算·aws·eb
2401_cf2 小时前
如何创建maven项目
java·maven·intellij-idea
喝醉的小喵2 小时前
【mysql】并发 Insert 的死锁问题 第二弹
数据库·后端·mysql·死锁