Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Redis中存储链接到散列的集合的最佳方法?_Redis_Node Redis_Nosql - Fatal编程技术网

在Redis中存储链接到散列的集合的最佳方法?

在Redis中存储链接到散列的集合的最佳方法?,redis,node-redis,nosql,Redis,Node Redis,Nosql,我需要在Redis中存储有关教室和学生的数据 我有课堂信息的哈希,例如: 教室:0 其中0是教室id,其字段值对如下: classroomName->xx,teacherId->yy 为了存储这些教室的学生,我有一套独立的设备,例如: studentsForClassroom:0,此集合包含该类中的学生ID数组 按照这种设计,为了获得关于一个班级的所有信息,我必须首先对教室0执行hgetall命令,然后对学生教室0执行smembers命令 这条路对吗?有更好的解决办法吗? 学生集合是否可能以某

我需要在Redis中存储有关教室和学生的数据

我有课堂信息的哈希,例如:
教室:0
其中0是教室id,其字段值对如下:

classroomName->xx,teacherId->yy

为了存储这些教室的学生,我有一套独立的设备,例如:

studentsForClassroom:0
,此集合包含该类中的学生ID数组

按照这种设计,为了获得关于一个班级的所有信息,我必须首先对教室0执行hgetall命令,然后对学生教室0执行smembers命令

这条路对吗?有更好的解决办法吗?
学生集合是否可能以某种方式嵌套在教室散列中,这样当我进行hgetall时,整个学生数组就在教室数据中填充?

你做得对。Redis没有嵌套的数据结构


由于您的课堂哈希和学生集不是太大,使用HGETALL和SMEMBERS是可以的,但请记住,对于较大的卷,您可能希望使用HSCAN和SSCAN。

您不必担心这一点。Redis的速度非常快,使用它的通常方式是:发出许多简单的请求。此外,节点redis自动将命令管道化。 如果确实存在性能问题,请确保安装了hiredis。Node_redis将使用它