我要记录一种传感器数据,每秒100个值,我需要把时间和对应的值存储起来。 查询主要有两种,优先按照时间范围查询一个时间段内所有数据。然后就是查询值超出报警值的记录。 请问用redis怎么存储读取效率比较高? list string hash ? 用string的话,redis的key很多的时候,效率怎么样,比如我一天一个传感器800w条数据,一套32个传感器,如果用string,一天要建立2.7亿key是不是效率不高? 要是用list的话,怎么处理时间和值的对应关系,hash的话,怎么样顺序取数据,因为本人对redis不熟求指导
不知道你这个问题是否已经解决, 如果还没有解决的话: zrevrange #以位置索引从高到低的方式获取并返回此区间内的成员
zrevrangebyscore #获取分数满足表达式x >= score >= x 的成员,并以从高到底的顺序输出。
zrevrank #获取成员索引
例:
del yun
zadd yun 1 a 2 b 3 c 4 d 5 e
zrange yun 0 -1
zrevrange yun 0 -1
zrevrank yun a
zrank yun a
zrevrangebyscore yun 5 3
zrevrangebyscore yun 3 1 limit 1 2