Sou*_*nta 11 database-design redis
我正在对数据流执行一些分析并在Redis频道上发布结果.消费者订阅这些频道并获得实时数据馈送.所有历史数据分析结果都将丢失.
现在我想添加在Redis中存储历史数据的功能,以便消费者可以查询这些历史数据(主要是按时间).由于分析结果按时间划分,将结果存储在Redis中的好设计是什么?
raf*_*ian 32
使用redis 排序集.
排序集根据"得分"存储数据,因此在您的情况下,只需使用毫秒时间戳; 数据将自动排序,允许您使用开始/结束日期范围检索历史项目,这是一个示例...
将项目添加到已排序的集合中......
zadd historical <timestamp> <dataValue>
Run Code Online (Sandbox Code Playgroud)
..添加了一些示例数据..
zadd historical 1 data1
zadd historical 2 data2
zadd historical 3 data3
zadd historical 4 data4
zadd historical 5 data5
zadd historical 6 data6
zadd historical 7 data7
Run Code Online (Sandbox Code Playgroud)
..使用开始/结束范围检索项目的子集...
zrangebyscore historical 2 5
Run Code Online (Sandbox Code Playgroud)
..returns ...
1) "data2"
2) "data3"
3) "data4"
4) "data5"
Run Code Online (Sandbox Code Playgroud)
因此,在您的情况下,如果您想要检索最后一天的所有历史项目,请执行此操作...
zrangebyscore historical <currentTimeInMillis - 86400000> <currentTimeInMillis>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11693 次 |
最近记录: |