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

时间:2014-09-27 17:34:54

标签: redis node-redis nosql

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

我有课堂信息的哈希,例如: classroom:0 其中0是类房间ID,它有字段值对,如:

classroomName -> xx, teacherId -> yy

为了将学生存放在这些教室,我有单独的Set ,例如:

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

按照这个设计,为了获得关于课程的所有信息,我必须先为教室做一个 hgetall命令:0然后为studentsForClassroom做一个 smembers命令 :0

这是正确的方法吗?更好的解决方案? 是否有可能学生SET可以以某种方式嵌套在教室哈希中,这样当我进行hgetall时,整个学生阵列就会填充在教室数据中?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

你不应该担心这个。 Redis的速度非常快,而且它是使用它的常用方法:提出许多简单的请求。而且node-redis会自动管道命令。 如果您确实遇到性能问题,请确保已安装hiredis。 Node_redis将使用它。