【Redis】实现异步秒杀功能

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

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

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

相关推荐
小涛不学习4 分钟前
Java高频面试题(带答案版)
java·开发语言
big_rabbit05024 分钟前
JVM堆内存查看命令
java·linux·算法
Liu628886 分钟前
Web开发与API
jvm·数据库·python
m0_743470379 分钟前
Python字典与集合:高效数据管理的艺术
jvm·数据库·python
2501_945423549 分钟前
使用Scrapy框架构建分布式爬虫
jvm·数据库·python
yhole11 分钟前
MySQL无法连接到本地localhost的解决办法2024.11.8
数据库·mysql·adb
学习要积极13 分钟前
Springboot图片验证码-EasyCaptcha
java·spring boot·后端
2401_8512729914 分钟前
使用Python进行量化交易入门
jvm·数据库·python
jinanmichael17 分钟前
mysql用户名怎么看
数据库·mysql
李少兄24 分钟前
企业资源计划(ERP)系统全景指南
java·前端·数据库·erp