2016-12-22 47 views
0

我有一個要求,我在某些過期時間將密鑰推送到redis。還有一個用戶監聽關鍵過期事件,然後回撥到我的其他系統,可以執行一些業務規則。對這個用例有相信redis pub-sub的好設計嗎? 按鍵的平均TTL範圍大約爲15分鐘。使用redis pub-sub進行密鑰過期

使用其他設計將使我有一個調度/ cron(每分鐘)或一些輪詢系統。

回答

0

是的,我一直在使用Redis pub/sub來製作完全相同的用例,並且對我來說工作得很好,沒有任何問題。

+0

謝謝阿洛克,你能幫助1件事 - 在生產中,我將有超過1臺機器的設置,用戶將在所有這些機器上運行。那麼處理相同的過期事件的最佳方式是什麼,這樣我就不會回調其他系統而不是重要的過期事件? – Ankush

+0

您的意思是生產或羣集中的主從設備嗎?在羣集的情況下,它不會成爲問題,因爲任何特定的密鑰只能存儲在單個實例中。在主/從設置的情況下,您可以讓用戶僅監聽來自主實例的事件。 –

+0

不,我的意思是訂閱者將在一個java應用程序中訂閱redis主服務器到期事件。現在這個應用程序將被部署在多臺機器上,因此到期事件將發佈到所有訂閱的機器上(因爲所有機器將具有相同的包裝和相同的訂戶代碼)。在收到這個事件後,我將對其他系統進行回調,那麼如何處理這種情況,我不會從所有機器發送回調,因爲它會重複到期事件。 1種方法是僅在1臺機器上部署訂戶應用程序。但是,最好的方法是什麼? – Ankush