業(yè)務(wù)場景:用戶下單之后,在規(guī)定時間內(nèi)如果不完成付款,訂單自動取消,并且釋放庫存使用技術(shù):redis鍵空間通知(過期回調(diào))用戶下單之后將訂單id作為key,任意值作為值存入redis中,給這條數(shù)據(jù)設(shè)置過期時間,也就是訂單超時的時間啟用鍵空間通知
默認情況下,禁用鍵空間事件通知。我們可以在redis.conf或redis-cli中(windows在redis.window-server.conf中)啟用它們,如下所示:
或者使用命令行設(shè)置:
redis-cli config set notify-keyspace-events Ex
參數(shù)說明:
這里我們只監(jiān)控過期事件,所以設(shè)置的是Ex
測試效果:
$ redis-cli --csv psubscribe '*'
Reading messages... (press Ctrl-C to quit)
"psubscribe","*",1
psubscribe '*'意味著我們想要使用模式訂閱所有事件*
開啟新的終端連接redis
在Python中的運用
回調(diào)函數(shù)只需拿到過期的order_id 即可實現(xiàn)取消訂單,恢復(fù)庫存的功能