我正在使用 Redis 存储来自许多模拟传感器的数据日志。我的目标是根据日志时间戳对数据进行排序,并从特定的日期时间范围内提取数据。我最初的数据模型是使用传感器名称作为键,并为每个时间戳和附加到哈希键的值都有一个散列。
所以。如果我有 SensorA、SensorB 和 SensorC,执行 Keys * 将返回 1.SensorA、2.SensorB 和 3.SensorC。执行 hget SensorB 20110111172900 会返回,比方说 25。
当前建模的问题是它不允许对时间戳进行排序,或者我认为是因为我尝试过的所有方法都失败了。
有人能建议一个允许排序和提取数据范围的数据模型,或者建议在上面的数据模型中允许这样做的正确排序参数。
最佳答案
在这种情况下,排序集可能比散列更合适。
该值将是时间戳和传感器值的组合。分数将是时间戳。使用 ZRANGEBYSCORE 检索值。读取和写入的时间复杂度为 O(1) 到 O(Log(N)),但您可以获得返回一系列值的能力。
您还可以使用列表来获得 O(1) 插入。读取特定条目的时间复杂度为 O(N),但获取最新条目的时间复杂度为 O(1)。
关于sorting - Redis - 寻求数据建模建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4663450/