【Redis】实现异步秒杀功能

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

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

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

相关推荐
28岁青春痘老男孩10 小时前
JDK8+SpringBoot2.x 升级 JDK 17 + Spring Boot 3.x
java·spring boot
方璧10 小时前
限流的算法
java·开发语言
元Y亨H10 小时前
Nacos - 服务注册
java·微服务
曲莫终11 小时前
Java VarHandle全面详解:从入门到精通
java·开发语言
ruleslol11 小时前
MySQL的段、区、页、行 详解
数据库·mysql
一心赚狗粮的宇叔11 小时前
中级软件开发工程师2025年度总结
java·大数据·oracle·c#
while(1){yan}11 小时前
MyBatis Generator
数据库·spring boot·java-ee·mybatis
奋进的芋圆11 小时前
DataSyncManager 详解与 Spring Boot 迁移指南
java·spring boot·后端
それども11 小时前
MySQL affectedRows 计算逻辑
数据库·mysql
是小章啊11 小时前
MySQL 之SQL 执行规则及索引详解
数据库·sql·mysql