2012-11-01 99 views
8

我正在使用Bottle開發應用程序。在我的註冊表格中,我使用唯一密鑰通過郵件確認電子郵件。我將這個密鑰存儲在REDIS中,過期4天。如果用戶在4天內未確認電子郵件,則密鑰過期。爲此,我想從我的數據庫(mongoDB)中永久刪除用戶條目。如何在REDIS中的密鑰過期時獲得回叫

Ofcourse我不需要連續的輪詢到我的redis服務器來檢查密鑰是否存在。

有沒有辦法從Redis獲得回調?

或者還有其他有效的方法嗎?

+0

請參閱[在Redis的蟒蛇密鑰過期的通知](http://stackoverflow.com/questions/23964548/notification-of-key -expiration-in-redis-python)獲取最新答案。 –

回答

9

在redis中沒有這樣的回調(不是我所知道的)。

我會做這樣的:

  • 當用戶註冊,put his id into a sorted set其中分數是時間戳(現+ 4日)和成員是用戶ID。
  • 有一個定期作業,它可以從時間戳過去的那個有序集合中獲取所有記錄。
  • 循環瀏覽這些用戶ID並採取行動(如果他沒有確認 - 刪除所有用戶的數據)。
+1

更多信息請訪問http://stackoverflow.com/questions/11810020/how-to-handle-session-expire-basing-redis/11815594#11815594 –

+0

偉大的技術,我會複製,如果你不介意^ _ ^ –