我需要在Redis中存储有关教室和学生的数据。
我有课堂信息的哈希,例如:
classroom:0
其中0是类房间ID,它有字段值对,如:
classroomName -> xx, teacherId -> yy
为了将学生存放在这些教室,我有单独的Set ,例如:
studentsForClassroom:0
,此集合包含该类中的学生ID数组。
按照这个设计,为了获得关于课程的所有信息,我必须先为教室做一个 hgetall命令:0然后为studentsForClassroom做一个 smembers命令 :0
这是正确的方法吗?更好的解决方案? 是否有可能学生SET可以以某种方式嵌套在教室哈希中,这样当我进行hgetall时,整个学生阵列就会填充在教室数据中?
答案 0 :(得分:1)
你做得对。 Redis没有嵌套的数据结构。
由于您的课堂哈希和学生成绩不是太大,使用HGETALL和SMEMBERS是可以的,但请记住,对于较大的卷,您可能想要使用HSCAN和SSCAN。
答案 1 :(得分:0)
你不应该担心这个。 Redis的速度非常快,而且它是使用它的常用方法:提出许多简单的请求。而且node-redis会自动管道命令。 如果您确实遇到性能问题,请确保已安装hiredis。 Node_redis将使用它。