14 如何在 Redis 保存时间序列数据?

当我们需要存储类似每个用户ID,及其访问行为(浏览,登录,下载时间戳),由于这些数据只是与 ID 对应一条行为的时间戳信息,因此不需要使用到关系型数据库,可以利用 Redis 中存储的键值数据类型,正好可以满足这样的存储需求,Redis 利用自身的数据结构及其扩展模块,提供了两种解决方案。

一、时序数据的读写特点

(1)写特点

  • 时序数据一般就是为了记录某个时刻事务的状态,因此一边写入之后就需要再进行修改操作,通常需要记录成千上万台设备及事物的状态,因此对于写入的效率要求较高,在 Redis 中支持高效率的写入的数据类型有 String 和 Hash,它们写入的时间复杂度为 O(1),但是在 11 节中讲解到,一般而言存储的时序数据中但是数据占用的内存并不大,但是由于 String 需要大量额外的元数据的开销,因此不适用于存储大量数据的场景。

(2)读特点

  • 时序数据写入之后通常之后就会进行大量的读操作,同时并对数据进行单条记录的查询,或者是进行时间范围的查询,又或者继续时间范围内的一些复杂的聚合运算(最大,最小值,求和等等)。

(3)结论

因此在 Redis 中为了适应时序记录的写入操作快,读操作频繁,并且要支持单点查询,范围查询及其对查询结果进行聚合运算的要求,在 Redis 中就提供了两种解决方案用于存储时序时序数据,这两种方案分别可以基于 S

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值