2011-02-06 9 views
6

Jestem nowy w Redis i liczyłem na rozwiązanie "najlepszej praktyki" do wdrożenia odpowiednika tabeli "użytkowników" w bazie danych mysql, do obsługi użytkowników w aplikacji internetowej.Redis newbie - ekwiwalentne podejście do mysql table

Czy utworzyć użytkowników SET w Redis? Lub baza danych użytkowników z SET dla każdego użytkownika?

Odpowiedz

8

Moja standardowa konfiguracja dla użytkowników jest serializowanym obiektem w standardowym kluczyku: userid - obiekt ten jest pobierany przy każdym żądaniu i nigdy nie ma potrzeby uzyskiwania dostępu tylko do jednej z właściwości.

Można również użyć skrótu zamiast json dla właściwości użytkownika, ale moja konfiguracja zawiera wszystko przyzwyczaić jak silnie wpisane przedmiotów i Redis uruchomiony na innym serwerze z klientem, więc za pomocą JSON sprawia, że ​​łatwiejsze w użyciu rodzajowe deserializacji i minimalizuje wszelkie problemy z opóźnieniami.

Oprócz samego obiektu użytkownika, trzeba będzie indeks dla wszelkich polach trzeba użyć, aby znaleźć użytkownika - na przykład aby umożliwić użytkownikowi zalogowanie się przy użyciu adresu e-mail, będziesz potrzebował klucza e: e-mail =>id użytkownika. W tym miejscu będzie działał skrót - ważne jest, że potrzebujesz czegoś, co jest O (1), aby uzyskać pocztę elektroniczną do obiektu użytkownika.

Czasami części danych użytkownika powinny mieć własne klucze - na przykład lista obserwatorów idealnie pasuje do zestawu redis, najlepiej więc przechowywać go w tym formularzu.

1

To naprawdę zależy od tego, co chcesz zrobić z Użytkownikami w aplikacji. Inną opcją byłoby, aby każdy użytkownik był własnym hashem, gdzie klucze są właściwościami (polami) dla każdego użytkownika (firstName, lastName, etc). Możesz użyć klucza, który zwiększasz jako generator identyfikatorów do wstawienia, i potencjalnie innego zestawu, który służy do przechowywania wszystkich identyfikatorów użytkowników.