2012-05-01 6 views
7

Patrząc na ten przykład http://redis.io/topics/twitter-clone, gdzie zapisy użytkownika są przechowywane za pomocą skrótu ("uid: 1000") i "tweety" są przechowywane przez klucz hash ("post: 60"), oznacza to, że wszystkie te zapisy są przechowywane w tej samej strukturze danych i dodanie tweetów wpłynie na czas pobierania rekordów użytkownika?W Redis wszystkie klucze hash przechowywane są w tej samej "tabeli"? a jeśli tak, w jaki sposób wpływa na wydajność?

+0

redis to zaawansowany magazyn wartości kluczy. dlatego nie przechowuje danych takich jak rdbms w "tabelach". zamiast tego przechowuje każdy klucz pod danym numerem/wpisem z danymi, które zawiera. – Hajo

+0

dokładnie i dlatego w tytule znajdują się średniki otaczające tabelę. – user971956

Odpowiedz

11

Tak, użytkownicy i tweety są przechowywane w tej samej strukturze danych. Ta struktura danych to hash table.

Wewnętrznie Redis nie ma pojęcia o typach rekordów. Jeśli chodzi o Redis, to User:1000 i Post:60 są po prostu ciągiem bajtów. Tak, tak, Redis przechowuje wszystkie rekordy w tej samej strukturze danych.

Ponieważ Redis nie rozróżnia Tweets i użytkowników, czasy reakcji dla obu typów rekordów będą podobne.

Wszystko sprowadza się zatem do pytania - czy skala wydajności Redisa mieści się w liczbie rekordów?

Odpowiedź brzmi: TAK, tak. Dopóki masz pamięć do przechowywania wszystkich danych, wydajność Redis nie powinna zależeć od liczby rekordów.