数据库设计 – Redis数据结构设计,用于对基于时间的值进行排序
发布时间:2020-08-05 10:49:10 所属栏目:MsSql 来源:互联网
导读:我正在对数据流执行一些分析并在Redis频道上发布结果.消费者订阅这些频道并获得实时数据馈送.所有历史数据分析结果都将丢失. 现在我想添加在Redis中存储历史数据的功能,以便消费者可以查询这些历史数据(主要是按时间).由于分析结果按时间划分,将结果存储在Red
|
我正在对数据流执行一些分析并在Redis频道上发布结果.消费者订阅这些频道并获得实时数据馈送.所有历史数据分析结果都将丢失. 现在我想添加在Redis中存储历史数据的功能,以便消费者可以查询这些历史数据(主要是按时间).由于分析结果按时间划分,将结果存储在Redis中的好设计是什么? 解决方法使用redis sorted sets.排序集根据“得分”存储数据,因此在您的情况下,只需使用毫秒时间戳;数据将自动排序,允许您使用开始/结束日期范围检索历史项目,这是一个示例… 将项目添加到已排序的集合中… zadd historical <timestamp> <dataValue> ..添加一些样本数据.. 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 ..使用开始/结束范围检索项目的子集… zrangebyscore historical 2 5 ..returns … 1) "data2" 2) "data3" 3) "data4" 4) "data5" 因此,在您的情况下,如果您想要检索最后一天的所有历史项目,请执行此操作… zrangebyscore historical <currentTimeInMillis> <currentTimeInMillis - 86400000> (编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 关于sqlserver 2005 使用临时表的问题( Invalid object nam
- sql server 2005中使用with实现递归的方法
- sql-server-2008-r2 – UAT和PROD服务器上执行计划的差异
- 数据库 – 在Microsoft Access(2010)中计算年和月的年龄
- sql server 编译与重编译详解
- sql-server – 什么是LINQ相当于SQL的“IN”关键字
- 数据库 – 是Oracle Total Recall的替代方案吗?
- sqlserver中求字符串中汉字的个数的sql语句
- 自动定时备份sqlserver数据库的方法
- 安装SQL2005 29506错误码的解决方案
