前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高质量编码-轨迹管理平台(Redis存储实时定位信息)

高质量编码-轨迹管理平台(Redis存储实时定位信息)

原创
作者头像
MiaoGIS
修改2020-12-02 14:33:19
1.5K0
修改2020-12-02 14:33:19
举报
文章被收录于专栏:Python in AI-IOTPython in AI-IOT

接着上文介绍轨迹管理平台中使用Redis存储实时定位信息。

历史位置信息可以存储在数据库中,由于设备上传实时定位信息时频率高并发量大,这里使用redis来存储各个设备上传的最新定位信息。真实情况下,设备也可以先将定位数据上传到消息队列(rabbitmq,kafka等),使用消费者worker异步将数据同步到数据库中。

同时,在线状态是通过查询设备终端最新10分钟内(可以自定义时间间隔)是否有定位轨迹点上传,使用redis的expire属性实现起来很容易。

使用Redis来存储实时定位信息的方法灵活多样。本例子中使用了第二种方法。

  • 用hash类型,服务ID(设备组ID)当做key,组内的设备的ID当做field,最近定位信息当做value.每次收到上传数据时只需要hset key(服务ID) field(设备ID) value(定位信息),value里存储x,y坐标和定位时间time。使用hash类型存储某一服务内的多个设备的最近定位信息时,计算在线状态需要在程序内将每个field对应value中的定位时间time和当前时间做比较,判断是否小于在线状态规定的10分钟(可以自定义时间间隔),否则为离线。
  • 可以直接使用string类型,"recentCoordinate_locator"开头的string,使用设备ID当做key,最近定位信息作为value.value里存储x,y坐标和定位时间time。同时使用 "keepOnline_locator"开头的string类型,收到上报数据时同时set key value EX,使用Ex来作为过期时间,Ex设置为规定的10分钟(600秒)(可以自定义时间间隔)。当从redis查找最新定位信息时,如果不存在设备ID作为key的数据,则判断为离线,否则为在线。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档