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

标签 redis node-redis nosql

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

我有类信息的哈希值,例如: 教室:0 其中 0 是教室 ID,它具有如下字段值对:

classroomName -> xx, teacherId -> yy

为了存储这些教室的学生,我有单独的集合,例如:

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

按照这个设计,为了获得关于一个类(class)的所有信息,我必须首先为 classroom:0 执行一个hgetall 命令,然后为 studentsForClassroom 执行一个smembers 命令 :0.

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

最佳答案

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

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

关于redis - 在 Redis 中存储链接到哈希的集合的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26077352/

相关文章:

python - 在后台运行的 Redis-Queue (RQ) worker

mongodb - Redis Geo - 返回两个地点/经纬度之间的不正确距离

node.js - 带有 Passport-http-bearer 身份验证的 Sails.js 无法正常工作

c++ - 存储机器数据的最佳 NoSQL 方式?

asp.net - 使用 Booksleeve 维护一个开放的 Redis PubSub 订阅

redis - 如何在 Redis 中添加一个字符串列表?

ruby-on-rails - Rails、ActionController::Live、Puma:ThreadError

node.js - Node + Redis + PHP 获取实时问题

mongodb - 使用 CassandraDB/MongoDB 等进行 id 自动增量/序列仿真

database - 如果发现的数据不够,则检索更多数据。 Cassandra