Redis
 sql >> Base de données >  >> NoSQL >> Redis

Concevoir une table de base de données Redis comme SQL ?

Redis, comme les autres magasins de données NoSQL, a des exigences différentes en fonction de ce que vous allez faire.

Redis dispose de plusieurs structures de données qui pourraient être utiles selon votre besoin. Par exemple, étant donné votre désir d'un select * from student where name = 'xxx' vous pouvez utiliser un hash Redis .

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"

Si vous avez d'autres questions cependant, comme si vous vouliez faire la même chose mais sélectionnez sur where college = 'nnn' alors vous allez devoir dénormaliser vos données. La dénormalisation est généralement une mauvaise chose en SQL, mais en NoSQL, c'est très courant.

Si votre requête principale portera sur le nom, mais que vous devrez peut-être interroger le collège, vous pouvez faire quelque chose comme ajouter un set en plus des hachages.

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"

Avec vos données structurées comme ceci, si vous vouliez trouver toutes les informations pour les noms allant au collège xn, vous devez d'abord sélectionner le set , puis sélectionnez chaque hash basé sur le nom retourné dans le set .

Vos exigences détermineront généralement la conception et les structures que vous utiliserez.