redis過期事件

2022-01-29 16:18:23 字數 726 閱讀 7286

背景:目前在**專案,訂單有過期邏輯,小夥伴提議用redis做,經討論分析,redis有key的過期事件,貌似可以實現,但是諮詢大神,好像不建議這樣用,可能會丟資料

隨便寫了段python**測試

1

import

redis

23 r = redis.redis(host='

127.0.0.1

', port=6379, db=0, password='

111'

)4 pubsub =r.pubsub()

5 pubsub.subscribe('

__keyevent@0__:expired')

6#pubsub.subscribe('aa')

7for item in

pubsub.listen():

8if item['

type

'] == '

message':

9print(item['

data

'])

事件通過 redis 的訂閱與發布功能(pub/sub)來進行分發,故需要訂閱 __keyevent@0__:expired,其中0表示dbindex

要有事件觸發還需要額外的修改redis配置notify-keyspace-events ex(預設是空白字串)

測試:通過redis客戶端新增key,並指定過期時間,key過期時,即會觸發事件。

redis過期事件監聽

1 redis配置檔案修改 redis.windows.conf與 redis.windows service.conf都要修改 notify keyspace events ex2 新增redis配置檔案,訂閱過期事件訊息 keyevent 1 expired 其中1代表操作redis中的db1,...

redis中key過期事件

剛到新公司乙個月左右,有個新需求,想做定時任務,比如在使用者註冊時間的3天後推送使用者一條訊息。從剛開始腦子裡面閃現的資料庫輪詢,立馬否定掉 浪費資源 再到linux系統的定時任務,但是當使用者量過大時,肯定不行。最後想著redis如果key過期了,能不能監聽觸發乙個事件,這樣便可以不用時刻的查詢是...

redis 高階功能,過期事件監聽

不談應用場景的技術都是道聽途說 這個問題解決的方案就有多種了,我們可以通過mq來進行,現在大多的mq都帶有死信佇列的機制,我們可以通過這個機制來完成,其次也可以通過quartz的輪詢方式的完成,過程不表選擇合適的應對當前的需求即可。當然本次主要是解決第乙個需求,所以只談如何使用redis來解決。3....