1
是否有可能等待Redis中存在密鑰?讓引擎在處理繁重工作的背景中運行。這個想法是讓其餘的API向Redis發送請求,並從該列表讀取引擎。其餘的api會監視一個特定的密鑰,最終將包含發送給客戶端的響應。Redis/Node等待密鑰存在
這可能嗎? - 當我做我自己的研究時,我一直在使用BLPOP,但這是列表而不是Redis中的特定密鑰。
有沒有更好的方法來做到這一點?
是否有可能等待Redis中存在密鑰?讓引擎在處理繁重工作的背景中運行。這個想法是讓其餘的API向Redis發送請求,並從該列表讀取引擎。其餘的api會監視一個特定的密鑰,最終將包含發送給客戶端的響應。Redis/Node等待密鑰存在
這可能嗎? - 當我做我自己的研究時,我一直在使用BLPOP,但這是列表而不是Redis中的特定密鑰。
有沒有更好的方法來做到這一點?
您可以使用Redis Keyspace Notification功能來實現目標。
藉助此功能,當有人創建/設置給定密鑰時,Redis會將消息發佈到特定頻道。爲了等待一個給定的密鑰存在,您只需要爲這個特定頻道訂閱,然後等待通知。
// Enable keyspace notification:
config set notify-keyspace-events g$K
// subscribe the specific channel: [email protected]<db_num>__:<key_name>
subscribe '[email protected]__:key'
當有人設置鍵,你會得到以下通知:
1) "message"
2) "[email protected]__:key"
3) "set"
聽起來像是你要使用的Redis的發佈/訂閱的一部分通知REST API的關鍵已經添加。 – david
@david我知道pub/sub之前使用過,但實際上在閱讀你的評論後,你實際上給了我一個好主意:)非常感謝 – kevingilbert100