【Redis】实现异步秒杀功能

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

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

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

相关推荐
彦为君5 小时前
JavaSE-11-网络编程(详细版)
java·前端·网络·ai·ai编程
毅炼5 小时前
今日LeetCode 摸鱼打卡
java·算法·leetcode
一拳一个娘娘腔5 小时前
【SRC漏洞挖掘系列】第03期:SQL注入——从“拖库”到“掌舵”的终极奥义
数据库·sql·安全
一个做软件开发的牛马5 小时前
我用 Java 写了一个猜数字游戏,踩了 3 个流程控制的坑
java
Byron07075 小时前
后端架构核心技术栈详解
java·架构
半夜修仙5 小时前
Redis中String数据类型的常见命令
数据库·redis·缓存
南境十里·墨染春水6 小时前
讲讲libevent底层机制
数据库
专注VB编程开发20年6 小时前
Python 的 C 扩展,本质上就是“去中心化的 COM”
java·服务器·开发语言·ide·python
LB21126 小时前
消灭并发重复调用:基于 Agent 调用 LLM 的分布式 Single-Flight 实战
java·开发语言·redis·分布式·agent
JAVA社区6 小时前
Java进阶全套教程(七)—— Redis超详细实战详解
java·linux·开发语言·redis·面试·职场和发展