sql >> Base de Datos >  >> NoSQL >> Redis

¿Diseñar la tabla de base de datos de Redis como SQL?

Redis, al igual que otros almacenes de datos NoSQL, tiene diferentes requisitos según lo que vaya a hacer.

Redis tiene varias estructuras de datos que podrían ser útiles según su necesidad. Por ejemplo, dado su deseo de un select * from student where name = 'xxx' podrías usar un hash de 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"

Sin embargo, si tiene otras consultas, como si quisiera hacer lo mismo pero seleccione where college = 'nnn' entonces tendrá que desnormalizar sus datos. La desnormalización suele ser algo malo en SQL, pero en NoSQL es muy común.

Si su consulta principal será contra el nombre, pero es posible que deba consultar contra la universidad, entonces podría hacer algo como agregar un set además de los 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"

Con sus datos estructurados de esta manera, si quisiera encontrar toda la información de los nombres que irán a la universidad xn, primero seleccionaría el set , luego seleccione cada hash basado en el nombre devuelto en el set .

Sus requisitos generalmente impulsarán el diseño y las estructuras que utilice.