【Redis】实现异步秒杀功能

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

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

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

相关推荐
Alan_751 分钟前
GraphQL 深度解析:为什么它能替代传统 REST API
数据库·后端
SamDeepThinking2 分钟前
为什么很多人学了Java,还是没真正理解类和对象?
java·后端·面试
少时登峰6 分钟前
【吃透 MySQL InnoDB连载】第 6 章・索引底层原理
数据库·mysql
zzh___zzh32 分钟前
Spring Boot资源路径与ClassPathResource详解
java
学渣超42 分钟前
微服务日志智能诊断系统(八) 全链路追踪——request_id驱动的跨服务诊断
java·后端·agent
ACGkaka_43 分钟前
Spring Boot 实战(四十一):集成 BPMN(Flowable+bpmn-js)
java·spring boot·后端
AllData公司负责人43 分钟前
数据集成管理|AIIData数据中台实现MySQL、Hive、Oracle一键接入Doris
大数据·数据库·人工智能·hive·mysql·oracle·数据分析
Rain的Java大神实战圈44 分钟前
高并发下如何防止商品超卖少卖
经验分享·redis·高并发·架构设计·电商·面试经验
学渣超1 小时前
微服务日志智能诊断系统(九) 让 LLM 成为日志分析专家
java·后端·agent
学渣超1 小时前
微服务日志智能诊断系统(七) 日志 RAG 引擎——蒸馏、索引与精准检索
java·后端·agent