2012-11-01 56 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

伟大的技术,我会复制,如果你不介意^ _ ^ –