如何用Redis实现一个高效的长尾词延迟查询队列?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2882个文字,预计阅读时间需要12分钟。
延迟队列,顾名思义,是一种具有延迟功能的消息队列。那么,在什么场景下我需要这样的队列呢?
1. 背景介绍 首先,我们来看看以下业务场景:
+ 当订单处于未支付状态时,如何及时通知用户?
2. 场景分析 那么,在以下场景下,我可能需要这样的队列:
+ 当订单处于未支付状态时,如何及时通知用户?
延迟队列,顾名思义它是一种带有延迟功能的消息队列。那么,是在什么场景下我才需要这样的队列呢?
1. 背景
我们先看看以下业务场景:
- 当订单一直处于未支付状态时,如何及时的关闭订单
- 如何定期检查处于退款状态的订单是否已经退款成功
- 在订单长时间没有收到下游系统的状态通知的时候,如何实现阶梯式的同步订单状态的策略
- 在系统通知上游系统支付成功终态时,上游系统返回通知失败,如何进行异步通知实行分频率发送:15s 3m 10m 30m 30m 1h 2h 6h 15h
1.1 解决方案
- 最简单的方式,定时扫表。例如对于订单支付失效要求比较高的,每2S扫表一次检查过期的订单进行主动关单操作。优点是简单,缺点是每分钟全局扫表,浪费资源,如果遇到表数据订单量即将过期的订单量很大,会造成关单延迟。
本文共计2882个文字,预计阅读时间需要12分钟。
延迟队列,顾名思义,是一种具有延迟功能的消息队列。那么,在什么场景下我需要这样的队列呢?
1. 背景介绍 首先,我们来看看以下业务场景:
+ 当订单处于未支付状态时,如何及时通知用户?
2. 场景分析 那么,在以下场景下,我可能需要这样的队列:
+ 当订单处于未支付状态时,如何及时通知用户?
延迟队列,顾名思义它是一种带有延迟功能的消息队列。那么,是在什么场景下我才需要这样的队列呢?
1. 背景
我们先看看以下业务场景:
- 当订单一直处于未支付状态时,如何及时的关闭订单
- 如何定期检查处于退款状态的订单是否已经退款成功
- 在订单长时间没有收到下游系统的状态通知的时候,如何实现阶梯式的同步订单状态的策略
- 在系统通知上游系统支付成功终态时,上游系统返回通知失败,如何进行异步通知实行分频率发送:15s 3m 10m 30m 30m 1h 2h 6h 15h
1.1 解决方案
- 最简单的方式,定时扫表。例如对于订单支付失效要求比较高的,每2S扫表一次检查过期的订单进行主动关单操作。优点是简单,缺点是每分钟全局扫表,浪费资源,如果遇到表数据订单量即将过期的订单量很大,会造成关单延迟。

