《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
关于 LearnKu
1、限制增加次数(超过5公里的骑手,在业务上是否合理) 2、增加 PHP 运行内存 :stuck_out_tongue_winking_eye:
用 Redis 或者 ES 的 GEO 能力,不用自己算
同上 明显GEO合适些
上go语言
博客:redis三种特殊数据类型
可以用 Redis 的 GEOHASH 实现,省事
你说的递增它需要递归吗?
mysql有现成好用的计算距离的函数的,把骑手经纬度 定时保存到表里,直接查出按消费者距离排序的所有骑手,不是很方便吗?
用户下单流程把订单号和订单主键索引,经纬度存储到redis geo,就可以完成查询。
感觉5次轮询就把内存打爆了有点奇怪啊。 要不换种实现:骑手每N分钟上报位置,存到 redis(数据库也行),订单来了就取当时所有骑手的位置信息和用户位置做计算(存数据库要自己算),把订单派给最近的骑手就完了。也不用轮询,简单的计算也不耗内存。如果用 redis 的话,它自带的geo还更快。 redis geo 没用过,不过应该不难的。mongo 也有 geo
别递归了,直接for循环.或者搞一个限制,递归限制调用多少次,要不然无论多大内存都得内存溢出
简单点思考:直接在数据库里,根据经纬度计算距离排序,取第一条。
经理的要求你要翻译成程序可以理解的。
内存爆了你是有泄露,解决了这个问题就OK了