使用Redis和Python构建一个共享单车的应用程序
代码起首加载全部必要体系在内存中处理赏罚的共享单趁魅站的信息数据集。 当加载了一个趁魅站的信息时,该站就会凭证 Redis 键名从内存中的趁魅站荟萃中删除。 加载完全部趁魅站数据后,我们就剩下一个包括该体系全部必需删除的趁魅站数据的荟萃。 措施迭代处理赏罚该数据集,并建设一个事宜删除趁魅站的信息,从地理空间索引中删除该趁魅站的键名,并从体系的趁魅站列表中删除该趁魅站。 代码重点在示例代码中有一些值得留意的处所。 起首,行使 假如你行使的是 Redis 4.0(或更高版本),则可以在代码中行使 关照客户端处理赏罚竣事时,会向依靠我们数据的客户端发送关照。 行使 Redis 宣布/订阅机制,关照将通过 数据模子在 Redis 中构建数据时,最重要的思量身分是怎样查询信息。 共享单车措施必要支持的两个首要查询是:
Redis 提供了两种首要数据范例用于存储数据:哈希和有序集。 哈希范例很好地映射到暗示趁魅站的 JSON 工具;因为 Redis 哈希不行使牢靠的数据布局,因此它们可用于存储可变的趁魅站信息。 虽然,在地理位置上探求站点需腹地理空间索引来搜刮相对付某些坐标的站点。 Redis 提供了几个行使有序集数据布局构建地理空间索引的呼吁。 我们行使 获取用户位置构建应用措施的下一步是确定用户的当前位置。 大大都应用措施通过操纵体系提供的内置处事来实现此目标。 操纵体系可以基于装备内置的 GPS 硬件为应用措施提供定位,可能从装备的可用 WiFi 收集提供近似的定位。 查找趁魅站找到用户的位置后,下一步是找到四面的共享单趁魅站。 Redis 的地理空间成果可以返回用户当前坐标在给定间隔内的全部趁魅站信息。 以下是行使 Redis 呼吁行界面的示例。 想象一下,我正在纽约市第五大道的苹果零售店,我想要向市中心偏向前去位于西 37 街的 MOOD 布料店,与我的挚友 Swatch 相遇。 我可以坐出租车或地铁,但我更喜好骑单车。 四面有没有我可以行使的单车共享站呢? 苹果零售店位于 40.76384,-73.97297。 按照舆图表现,在零售店 500 英尺半径范畴内(舆图上方的蓝色)有两个单趁魅站,别离是陆军广场中央公园南单趁魅站和东 58 街麦迪逊单趁魅站。 我可以行使 Redis 的
Redis 行使地理空间索引中的元素作为特定趁魅站的元数据的键名,,返回在该半径内找到的两个共享单趁魅站。 下一步是查找两个站的名称:
这些键名对应于上面舆图上标识的趁魅站。 假如必要,可以在
查找与这些键名关联的名称会天生一个我可以从中选择的趁魅站的有序列表。 Redis 不提供偏向和蹊径的成果,因此我行使装备操纵体系的蹊径成果绘制从当前位置到所选单趁魅站的蹊径。
其他的查询呼吁除了 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |