2014-09-12 19 views
5

Witam Jestem nowy redis i potrzebuję pomocy tutaj. Używam serwera java i sql server 2008 oraz serwera redis. Do interakcji z redis używam jedi api dla java. Wiem, że redis służy do przechowywania rzeczy kluczowych. Każdy klucz ma wartości.Jak przekonwertować tabelę SQL na dane Redis

Problem Tło:

mam nazwy tabeli "user", który przechowuje dane, takie jak identyfikator, nazwisko, adres e-mail, wiek, kraj. To jest schemat tabeli sql. Teraz ta tabela ma kilka wierszy (również niektóre dane). Teraz tutaj mój klucz podstawowy to id i jego właśnie dla DB używać go bezużyteczne dla mnie w aplikacji.

Teraz w sql mogę wstawić nowy wiersz, można zaktualizować wiersz, można wyszukać dowolnego użytkownika, można usunąć użytkownika.

Chcę przechowywać dane w tabelach na redis. Następnie chcę wykonać podobne operacje na Redis, jak wyszukiwanie, wstawianie, usuwanie. Ale jeśli mam dobry projekt na "Przechowywanie tych informacji w DB i Redis", to te operacje będą przeprowadzane po prostu. Pamiętaj, że mogę mieć również wiele tabel. Więc powinien przechowywać dane w redis na podstawie tabeli.

mój problem

Każdy projekt lub informacji może mi doradzić, że jak mogę przekonwertować danych DB Redis i wykonywać wszystkie operacje. Pytam o to, ponieważ wiem, że Facebook używa również redis do przechowywania danych. Następnie, w jaki sposób przechowują dane.

Każda pomoc będzie bardzo wdzięczna.

+0

Myślę, że musisz przeczytać dokumentację ReDis - wygląda na to, że będzie dużo. –

+0

Jeśli uwzględnisz istniejący schemat/pola i zapytania, których używałeś lub planowałeś, możesz podać bardziej dokładną odpowiedź. Projekt powinien być wykonany z pewną koncepcją użytkowania. – jpj

Odpowiedz

1

To jest bardzo trudne pytanie, ponieważ istnieje wiele sposobów na zrobienie tego.

Najlepszym sposobem według mnie byłoby użycie skrótów. Zasadniczo jest to zagnieżdżony zagnieżdżony typ klucz-wartość. Tak więc twój klucz będzie pasował do skrótu, abyś mógł przechowywać nazwę użytkownika, hasło itp.

Jednym z problemów jest indeksowanie, musisz mieć identyfikator zapisany w kluczu. Na przykład każdy użytkownik musiałby mieć klucz jak: USER:21414

Drugą rzeczą, jeśli nie chcesz patrzeć na takich komend jak KEYS lub SCAN będziesz musiał utrzymać swoją listę użytkowników do iteracji, tylko jeśli trzeba aby to zrobić. W tym celu należy przejrzeć listy lub posortowane zestawy.

Szczerze mówiąc, nie ma prawdziwej odpowiedzi na to pytanie, dane w stylu SQL nie są odwzorowywane na wartości klucza w jakikolwiek rzeczywisty sposób. Zwykle sam musisz dużo więcej pracować.

Sugerowałbym czytanie tak dużo, jak tylko można i zacznę tutaj http://redis.io/commands i tutaj http://redis.io/documentation.

Nie mam doświadczenia w korzystaniu z Jedi, więc nie mogę pomóc po tej stronie. Jeśli chcesz mieć przykład, mam otwartą witrynę społecznościową, która używa Redis jako jedynego magazynu danych. Możesz rzucić okiem na kod, aby uzyskać kilka pomysłów https://github.com/pjuu/pjuu/blob/master/pjuu/auth/backend.py. Używa Pythona, ale Redis jest tak łatwy w użyciu wszędzie tam, gdzie nie będzie aż tak wielkiej różnicy.

Edytuj: Moja strona powyżej nie używa wyłącznie Redis. Starsza gałąź będzie musiała być sprawdzona, np. 0.4 lub 0.3 :)