2012-11-01 5 views
8

Zajmuję się tworzeniem aplikacji za pomocą Butelki. W formularzu rejestracyjnym potwierdzam pocztą e-mail unikalny klucz. Przechowuję ten klucz w REDIS z upływem 4 dni. Jeśli użytkownik nie potwierdzi wiadomości e-mail w ciągu 4 dni, klucz wygasa. w tym celu chcę trwale usunąć wpis użytkownika z mojej bazy danych (mongoDB).Jak uzyskać oddzwonienie po wygaśnięciu klucza w REDIS

Oczywiście Nie wymagam ciągłego pobierania do mojego serwera redis, aby sprawdzić, czy klucz istnieje, czy nie.

Czy istnieje sposób na uzyskanie oddzwonienia z Redis?

Czy istnieje inny skuteczny sposób?

+0

proszę zobaczyć [Powiadomienie o wygaśnięciu klucza w Redis python] (http://stackoverflow.com/questions/23964548/notification-of-key -expiration-in-redis-python) w celu uzyskania aktualnej odpowiedzi. –

Odpowiedz

9

Nie ma takich zwrotów w Redis (nie o tym wiem).

zrobiłbym to tak:

  • gdy użytkownik rejestruje up, put his id into a sorted set gdzie wynik jest znacznik czasu (obecnie + 4 dni) oraz członkiem jest identyfikator użytkownika.
  • mają okresowe zadanie, które pobiera wszystkie rekordy z tego posortowanego zestawu, w którym znacznik czasu jest w przeszłości.
  • zapętlaj te identyfikatory użytkowników i podejmij działania (jeśli nie potwierdził - usuń wszystkie dane użytkownika).
+1

Więcej informacji na http://stackoverflow.com/questions/11810020/how-to-handle-session-expire-basing-redis/11815594#11815594 –

+0

Świetna technika, coś, co skopiuję, jeśli nie masz nic przeciwko^_ ^ –