Redis, podobnie jak inne magazyny danych NoSQL, ma inne wymagania w zależności od tego, co zamierzasz robić.
Redis ma kilka struktur danych, które mogą być przydatne w zależności od potrzeb. Na przykład, biorąc pod uwagę chęć select * from student where name = 'xxx'
możesz użyć hash
Redisa .
redis 127.0.0.1:6379> hmset student:xxx id 1 college nnn address xn
OK
redis 127.0.0.1:6379> hgetall student:xxx
1) "id"
2) "1"
3) "college"
4) "nnn"
5) "address"
6) "xn"
Jeśli masz inne zapytania, na przykład chcesz zrobić to samo, ale wybierz where college = 'nnn'
wtedy będziesz musiał zdenormalizować swoje dane. Denormalizacja jest zwykle złą rzeczą w SQL, ale w NoSQL jest bardzo powszechna.
Jeśli Twoje podstawowe zapytanie będzie dotyczyło nazwy, ale może być konieczne zapytanie o uczelnię, możesz zrobić coś takiego jak dodanie set
oprócz skrótów.
redis 127.0.0.1:6379> sadd college:nnn student:xxx
(integer) 1
redis 127.0.0.1:6379> smembers college:nnn
1) "student:xxx"
Mając dane o takiej strukturze, jeśli chcesz znaleźć wszystkie informacje o nazwiskach uczęszczających na studia xn, najpierw wybierz set
, a następnie zaznacz każdy hash
na podstawie nazwy zwróconej w set
.
Twoje wymagania będą ogólnie wpływać na projekt i używane struktury.