web-dev-qa-db-ja.com

REDISでキーの有効期限が切れたときにコールバックを取得する方法

私はBottleを使用してアプリケーションを開発しています。登録フォームで、一意のキーを使用してメールで確認しています。このキーを4日でREDISに保存しています。ユーザーが4日以内にメールを確認しないと、キーの有効期限が切れます。このため、データベース(mongoDB)からユーザーエントリを完全に削除したいと思います。

もちろん、キーが存在するかどうかを確認するために、redisサーバーへの継続的なポーリングは必要ありません。

Redisからコールバックを取得する方法はありますか?

または他の効率的な方法はありますか?

16
Kartik Rokde

Redis 2.8に実装されているこの機能については、こちらをご覧ください http://redis.io/topics/notifications

18

Redisにはそのようなコールバックはありません(私が知っていることではありません)。

私はこのようにします:

  • ユーザーがサインアップすると、 自分のIDを並べ替えられたセットに入れます ここで、スコアはタイムスタンプ(現在は+ 4日)で、メンバーはユーザーIDです。
  • タイムスタンプが過去であるソートされたセットからすべてのレコードを取得する定期的なジョブがあります。
  • それらのユーザーIDをループして、アクションを実行します(確認しなかった場合は、すべてのユーザーのデータを削除します)。
9