Redis作为一个高效、可靠的关键值存储,用来处理高并发、高性能的数据读取和存储,在Web架构中设计应用范围很广,其中之一就是用来处理订单超时处理。
我们将需要处理的订单存储在Redis中,可以使用Hash结构存储,Hash的Key就是订单号,Hash的Value就是订单有效时间。
每次用户下单,就根据订单号将该订单写入Redis中,并设置一个指定有效时间,如2小时。
当用户下单后,订单定时任务就将有效时间过期的订单删除。具体实现方法如下:
首先我们使用Redis的 scan 命令对我们创建的订单Hash中取出Key–订单号(通过增量游标,SCAN 命令可以构建一个迭代器来遍历整个数据库):
redis-cli> scan 0
得到Long类型的游标及查询结果,如:
1) "13"
2) 1) "ORDER_100001:expire"
2) "30"
得到订单号ORDER_100001,再使用Redis的 get 命令根据订单号取出订单有效时间:
redis-cli> get ORDER_100001:expire
30
得到有效时间 30,与当前时间作对比,如果已经过期,就将该订单删除:
redis-cli> del ORDER_100001
1
此种方式的实现,我们还可以使用 Redis的 setex 命令来实现,setex 命令可以把设定有效时间的订单直接放入 Redis,当订单有效期到达时,Redis自动删除,无需设计定时任务去对比时间,效率高且方便:
redis-cli> setex ORDER_100001 1800 "Order_100001"
OK
定时任务中要检查订单有效性,检测到有效期过期,就将订单进行超时处理,把库存等进行回滚或发送相关消息给用户等。
以上,就是Redis用于实现订单超时处理的一种基本思路,可以加快处理效率,提高系统可伸缩性,值得推荐。我们可以给它以不同的角度,作出更多的发挥。
香港服务器选创新互联,2H2G首月10元开通。
创新互联(www.cdcxhl.com)互联网服务提供商,拥有超过10年的服务器租用、服务器托管、云服务器、虚拟主机、网站系统开发经验。专业提供云主机、虚拟主机、域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。
新闻名称:Redis实现订单自动过期处理(Redis设置订单过期)
本文路径:http://www.csdahua.cn/qtweb/news42/446942.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网