【Redis】实现异步秒杀功能

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

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

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

相关推荐
斑马13910 分钟前
Linux软件编程学习笔记(十三)——数据库
数据库·oracle
初願致夕霞24 分钟前
MySQL_索引
数据库·mysql
linweidong34 分钟前
中科闻歌Java面试题及参考答案
java·python·大模型·提示词·ai agent·mcp·rag原理
OpenAnolis小助手40 分钟前
一句话看透 JVM,SysOM 诊断 Skill 新增 Java 应用诊断能力
java·开发语言·jvm·阿里云·操作系统控制台·sysom
十六年开源服务商1 小时前
2026网站备份方案完整指南
数据库·oracle
ForteScarlet1 小时前
Kotlin 2.4.20 现已发布,新特性多不多?
android·java·开发语言·开源·kotlin·jetbrains
萧瑟余晖1 小时前
Java深入解析篇六十二之安全机制详解
java·开发语言
小刘在重生~1 小时前
Java 常用类|包装类 装箱拆箱、Integer 缓存面试题
java·python·缓存
Orange_sparkle2 小时前
Pi Agent vs LangGraph:从人机交互、企业 RAG 到持久化工作流的完整选型指南
java·网络·人机交互
一只小李郁vickie2 小时前
mysql 开启压缩传输3402条数据2.1秒压缩到毫秒级
数据库·mysql