sorting - Redis - 寻求数据建模建议

标签 sorting redis data-modeling

我正在使用 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/

相关文章:

javascript - 如何从数组对象中获取最近或最接近的日期?

node.js - 在 node.js 中使用 redis 支持的 "kue"库——为什么我的 redis 内存使用量不断增加?

java - HashMap 与字符串键的 Redis 内存优化

java - Spring Data Redis(1.3.2.RELEASE)是否支持jedis的JedisSentinelPool?

data-modeling - 链接维度的不同粒度级别的事实表

python - Python 中按表达式对列表列表进行排序

执行排序的C库函数

cassandra - Cassandra 中范围查询的数据建模

php - 使用 Arsort 排序不稳定

mysql - 如何在关系数据库中进行继承建模?