如何在REDIS中获取键过期时的回调

31

我正在使用Bottle开发应用程序。在我的注册表单中,我通过邮件验证唯一密钥来确认电子邮件。我将此密钥存储在REDIS中,并设置有效期为4天。如果用户未在4天内确认电子邮件,则密钥将过期。因此,我想永久删除数据库(mongoDB)中的用户条目。

当然,我不需要连续轮询我的Redis服务器以检查密钥是否存在。

有没有办法从Redis获取回调?

还是有其他更有效的方法?


1
请查看Redis Python中键过期通知以获取最新的答案。 - André Laszlo
2个回答

31

11

在Redis中没有这样的回调函数(至少我不知道有)。

我会这样做:

  • 当用户注册时,将其id放入一个有序集合,其中分数是一个时间戳(现在时间加上4天),成员是用户id。
  • 有一个定期任务,获取该有序集合中所有时间戳已过期的记录。
  • 遍历这些用户id,并采取相应的行动(如果他没有确认,则删除所有用户数据)。

1
更多信息请参见 https://dev59.com/nWgt5IYBdhLWcg3wywdJ#11815594 - Didier Spezia
很棒的技巧,如果您不介意,我会学习并借鉴它 ^_^ - Henley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接