日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Redis實(shí)現(xiàn)訂單自動(dòng)過期處理(Redis設(shè)置訂單過期)

Redis作為一個(gè)高效、可靠的關(guān)鍵值存儲(chǔ),用來處理高并發(fā)、高性能的數(shù)據(jù)讀取和存儲(chǔ),在Web架構(gòu)中設(shè)計(jì)應(yīng)用范圍很廣,其中之一就是用來處理訂單超時(shí)處理。

我們將需要處理的訂單存儲(chǔ)在Redis中,可以使用Hash結(jié)構(gòu)存儲(chǔ),Hash的Key就是訂單號(hào),Hash的Value就是訂單有效時(shí)間。

每次用戶下單,就根據(jù)訂單號(hào)將該訂單寫入Redis中,并設(shè)置一個(gè)指定有效時(shí)間,如2小時(shí)。

當(dāng)用戶下單后,訂單定時(shí)任務(wù)就將有效時(shí)間過期的訂單刪除。具體實(shí)現(xiàn)方法如下:

首先我們使用Redis的 scan 命令對(duì)我們創(chuàng)建的訂單Hash中取出Key–訂單號(hào)(通過增量游標(biāo),SCAN 命令可以構(gòu)建一個(gè)迭代器來遍歷整個(gè)數(shù)據(jù)庫):

redis-cli> scan 0

得到Long類型的游標(biāo)及查詢結(jié)果,如:

1) "13"
2) 1) "ORDER_100001:expire"
2) "30"

得到訂單號(hào)ORDER_100001,再使用Redis的 get 命令根據(jù)訂單號(hào)取出訂單有效時(shí)間:

redis-cli> get ORDER_100001:expire
30

得到有效時(shí)間 30,與當(dāng)前時(shí)間作對(duì)比,如果已經(jīng)過期,就將該訂單刪除:

redis-cli> del ORDER_100001
1

此種方式的實(shí)現(xiàn),我們還可以使用 Redis的 setex 命令來實(shí)現(xiàn),setex 命令可以把設(shè)定有效時(shí)間的訂單直接放入 Redis,當(dāng)訂單有效期到達(dá)時(shí),Redis自動(dòng)刪除,無需設(shè)計(jì)定時(shí)任務(wù)去對(duì)比時(shí)間,效率高且方便:

redis-cli> setex ORDER_100001 1800 "Order_100001"
OK

定時(shí)任務(wù)中要檢查訂單有效性,檢測(cè)到有效期過期,就將訂單進(jìn)行超時(shí)處理,把庫存等進(jìn)行回滾或發(fā)送相關(guān)消息給用戶等。

以上,就是Redis用于實(shí)現(xiàn)訂單超時(shí)處理的一種基本思路,可以加快處理效率,提高系統(tǒng)可伸縮性,值得推薦。我們可以給它以不同的角度,作出更多的發(fā)揮。

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


新聞名稱:Redis實(shí)現(xiàn)訂單自動(dòng)過期處理(Redis設(shè)置訂單過期)
URL分享:http://m.5511xx.com/article/cddehdc.html