Redis在电商中的两个使用场景
1. 延时队列,订单的自动取消,确认收货以等
2. 商品列表的筛选
1.延时队列在订单自动取消下的使用
为了避免库存占用,电商平台一般会在后台设置订单自动取消的时间,为了实现这个业务场景,开始的时候处理电商订单自动取消是通过crontab
每个1分钟去查询订单表,根据条件判断订单是否可以取消,有两个比较大的弊端
a.频繁的去查询订单表
b. 不同的订单类型条件不一样,可能需要写好几个脚本
通过Redis的sorted set
实现简单延时队列
sorted set
的两个特性:会根据分值score
排序,成员是唯一的,但分数(score)却可以重复。
__解决思路:__订单生成的时候,就把订单信息存入集合,以取消时间作为分值,订单号作为成员,脚本取出分值比当前时间小的所有元素,判断订单是否需要取消。
2.商品列表的筛选
通过Redis的集合来实现。
以手机为例
在商品列表一般有品牌,屏幕尺寸,内存等筛选项。在后台编辑的时候就把商品进行打标签。
比如 一加 7t,6t
sadd brand:oneplus 7t 6t # 7t,6t都是一加品牌
sadd screenSize:6 6t # 假设6t屏幕尺寸为6寸
sadd mem:64g 6t #内存64g
那么筛选,就是取这几个的交集
sinter brand:oneplus screenSize:6 mem:64g