O Redis, como outros datastores NoSQL, tem requisitos diferentes com base no que você fará.
O Redis possui várias estruturas de dados que podem ser úteis dependendo da sua necessidade. Por exemplo, dado o seu desejo de um
select * from student where name = 'xxx'
você pode usar um Redis hash
. 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"
No entanto, se você tiver outras dúvidas, como se deseja fazer a mesma coisa, mas selecione
where college = 'nnn'
então você terá que desnormalizar seus dados. A desnormalização geralmente é uma coisa ruim no SQL, mas no NoSQL é muito comum. Se sua consulta principal for em relação ao nome, mas talvez você precise consultar a faculdade, você pode fazer algo como adicionar um
set
além dos hashes. 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"
Com seus dados estruturados assim, se você quiser encontrar todas as informações para nomes que vão para a faculdade xn, primeiro selecione o
set
e selecione cada hash
com base no nome retornado no set
. Seus requisitos geralmente direcionarão o design e as estruturas que você usa.