Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Projetar tabela de banco de dados Redis como SQL?


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.