在redis中存储时间序列

2023-12-22

我需要将一些时间序列数据存储到redis 中。 我有 unix 时间戳,并且需要关联一个值(时间戳 值)

我尝试将时间戳作为分数(这样我可以对时间戳进行 zrange)并将值作为成员进行排序。

127.0.0.1:6379> ZADD timeserie 1392141527245 10 1392141527275 12 1392141527100 10
(integer) 2
127.0.0.1:6379> zscan timeserie 0
1) "0"
2) 1) "10"
   2) "1392141527245"
   3) "12"
   4) "1392141527275"
127.0.0.1:6379>

但我遇到了一个问题,成员不重复,而我的值对于不同的时间戳可能是相同的。 知道如何解决这个问题吗?另一种数据类型更好吗?


解决这个问题的一个简单技巧是将时间戳和值连接起来。

而不是存储:

ZADD timeserie 1392141527245 10

您可以存储:

ZADD timeserie 1392141527245 10:1392141527245

由应用程序编码/解析值:时间戳格式。

排序集被实现为跳跃列表加哈希表,因此它们在内存中并不是特别紧凑。如果您的数据量很大,那么其他解决方案将为您提供更好的服务。

有些人使用普通字符串来编码时间序列,这比排序集更紧凑。您可以在这里找到一个示例:https://github.com/antirez/redis-timeseries https://github.com/antirez/redis-timeseries

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在redis中存储时间序列 的相关文章

随机推荐

  • iOS / iPhone 上的正常运行时间冻结

    有人知道为什么我使用以下方法会遇到奇怪的正常运行时间吗 NSProcessInfo processInfo NSProcessInfo processInfo NSTimeInterval systemUptime processInfo
  • 如何拆分Tailwind生成的CSS代码?

    我正在寻找一种解决方案 将 Tailwind PostCSS 插件 与 purgecss 插件结合 生成的大 CSS 文件拆分为多个 CSS 文件 每个消费者 JS 文件一个 CSS 文件 JS 文件使用的 CSS 规则可以通过查看 JS
  • Android 4G 上如何查找互联网连接是否可用?

    我使用了以下代码来了解互联网连接是否可用 它在 3G 系统上运行良好 但它不适用于 4G 技术 有人知道如何查找 4g 上的互联网连接是否可用吗 如果有人有演示代码 请提供 Code public static boolean checkC
  • 为什么 EMR 5.x 版本中取消了对 Amazon S3 的直接写入?

    读完本页后 http docs aws amazon com emr latest ReleaseGuide emr hive differences html http docs aws amazon com emr latest Rel
  • Galaxy选项卡的布局设计

    我是 Android 新人 我想为 Galaxy 选项卡设计布局以及其他布局 我设计了四种布局 布局 小 大 超大和正常布局 但是当我尝试在 Galaxy 选项卡中检查这一点时 布局被拉伸 那么我如何开发在 Galaxy Tab 中运行的布
  • 具有固定大小 FIFO 队列的生产者/消费者模式

    我需要围绕固定大小的 FIFO 队列实现生产者 消费者模式 我thinkConcurrentQueue 周围的包装类可能适用于此 但我不完全确定 而且我以前从未使用过 ConcurrentQueue 这样做的不同之处在于队列只需要保存固定数
  • (0, someFunction)() 在javascript中的含义是什么[重复]

    这个问题在这里已经有答案了 我在某人的代码中发现了这段代码 听起来像这样 0 function arg this 在我尝试像下面这样玩之后 0 function arg console log arg 2 console log 0 1 2
  • CGContextSetTextMatrix 适用于屏幕外位图吗?

    我正在使用上下文创建屏幕外图像CGBitmapContextCreate 在绘制文本时 我尝试使用 CGContextSetTextMatrix contextRef CGAffineTransformMake 1 0 0 0 0 0 1
  • 如何在 Django 中以编程方式创建用户?

    我在一个项目中有 3 个应用程序 App1 从最终用户使用 基于网络视图的应用程序 App2 从服务提供商使用 网络服务 App3 由系统管理员使用 我想为每个应用程序使用 django 身份验证系统 我可以制作 django 项目来验证
  • LOG4J 同一类中的多个记录器

    我有一个具有 log4j 日志记录的 java 项目 它使用滚动文件附加程序和多个记录器来记录到文件 我想添加一个 DBappender 并有一个单独的记录器 仅写入此附加器 其他记录器都不会向其发送消息 比如说 我需要一个类有两个记录器
  • 如何让生成器调用 Rails 3 中的其他生成器

    我正在尝试宝石开发 现在特别是发电机 到目前为止 我已经成功创建了两个能够完美完成其工作的生成器 这两个生成器位于同一目录中 然而 现在我必须分别给他们每个人打电话 我想做的就是只调用一个生成器 然后让该生成器调用所有其他生成器 只需输入
  • 允许在 django REST 框架中发布请求

    我正在使用 django REST 框架创建一个简单的 REST API 我已通过向 api 发送 GET 请求成功获得响应 但由于我想发送 POST 请求 django Rest 框架默认不允许 POST 请求 As in image b
  • 单击即可打开文本框的传单自定义控件

    我已关注这个传单教程 http www coffeegnome net control button leaflet 关于如何为我的地图创建控制按钮 单击时 我希望它打开一个简单的文本框 其中包含有关地图及其作者的信息 其概念类似于this
  • 在列表内计数。帮助我理解这段代码

    我找到了一个3年前的老问题 帮助我计算列表中变量出现的次数 https stackoverflow com questions 9088062 count the number of occurrences of a number in a
  • WM_ENTERSIZEMOVE / WM_EXITSIZEMOVE - 使用菜单时,并不总是配对

    为了防止我的应用程序在用户移动窗口时更改窗口内容 我捕获消息WM ENTERSIZEMOVE WM EXITSIZEMOVE我在消息之间暂停应用程序 然而 有时我会收到WM ENTERSIZEMOVE but no WM EXITSIZEM
  • 使用外部 IDP 代理通过 KeyCloak 进行编程式用户名/密码访问

    我在用着身份经纪 http www keycloak org docs 3 3 server admin topics identity broker html功能和外部 IDP 因此 用户登录到外部 IDP UI 然后 KeyCloak
  • 如何使用“/update/:id”等 URL 作为 KendoUI 数据源?

    我阅读了文档 但没有发现与在 dataSource url 中设置参数相关的内容 有可能实现吗 提前谢谢 对的 这是可能的 这urls 定义在DataSource transport可能是一个函数 该函数接收 对于update 作为第一个参
  • 错误命令“encore”未找到。 (单独的后端 webpack)

    目录结构 admin gt backend webpack js yarnrc webpack config js package json assets gt frond webpack 管理 文件内容 yarnrc modules fo
  • Word宏,存储当前选择(VBA)

    我有一个 Word 文档 其中包含大约 4000 个表单字段 之后我必须将其导出到数据库 问题是 4000 个字段中没有一个在 书签 字段中包含信息 因此我无法获取其中存储的信息 我正在尝试创建一个宏来帮助编写书签 FormField Na
  • 在redis中存储时间序列

    我需要将一些时间序列数据存储到redis 中 我有 unix 时间戳 并且需要关联一个值 时间戳 值 我尝试将时间戳作为分数 这样我可以对时间戳进行 zrange 并将值作为成员进行排序 127 0 0 1 6379 gt ZADD tim