【Redis】实现异步秒杀功能

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

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

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

相关推荐
希忘auto26 分钟前
详解Redis在Centos上的安装
redis·centos
人间打气筒(Ada)27 分钟前
MySQL主从架构
服务器·数据库·mysql
leegong2311128 分钟前
学习PostgreSQL专家认证
数据库·学习·postgresql
喝醉酒的小白30 分钟前
PostgreSQL:更新字段慢
数据库·postgresql
敲敲敲-敲代码31 分钟前
【SQL实验】触发器
数据库·笔记·sql
和道一文字yyds33 分钟前
MySQL 中的索引数量是否越多越好?为什么?如何使用 MySQL 的 EXPLAIN 语句进行查询分析?MySQL 中如何进行 SQL 调优?
数据库·sql·mysql
落笔画忧愁e1 小时前
FastGPT快速将消息发送至飞书
服务器·数据库·飞书
Σίσυφος19002 小时前
halcon 条形码、二维码识别、opencv识别
前端·数据库
南宫生2 小时前
力扣每日一题【算法学习day.132】
java·学习·算法·leetcode
小刘|2 小时前
深入理解 SQL 注入漏洞及解决方案
数据库·sql