订单列表页的缓存怎么做啊。。

2020-03-05 19:34:30 +08:00
 qingshuang
做了个订单模块的功能,创建完返回列表页,异步传到 ES 服务器,返回列表页的时候查询最新订单,这时候订单还没同步到 ES,刚刚创建完的订单就没有显示。
目前想到俩个方案
1 是搞个 redis,一直缓存该用户的前 20 个订单,搜索条件为空的时候就查 redis
2 是前端等待 1 秒再返回列表页
这种限制一般前后端都需要加的,想问问各位老哥对于后端模块一般的通用做法是什么?
2950 次点击
所在节点    程序员
8 条回复
levylll
2020-03-05 19:44:23 +08:00
ES 的 refresh_interval 设置了嘛?干嘛要用 ES 存缓存数据呢?要进行中文检索么?
xuanbg
2020-03-06 00:09:12 +08:00
刚刚创建的订单我不用调接口就能显示。。。自己创建的数据,自己心里还没点 B 数吗?有创建订单成功返回的订单 ID 和订单号就足够自己组装完整的订单数据了。
opengps
2020-03-06 09:13:38 +08:00
搞个创建完成的弹窗提示,这个过程足够耽误 1 秒了
qingshuang
2020-03-06 10:40:27 +08:00
@levylll 肯定有中文检索啊。。 搜索条件是商品名啊,收件人什么的
我在想可不可以搜索条件为空时捞 db,有搜索条件再去 es 里捞,这样性能应该会好些。
列表页界面差不多上面一排收件人,订单号,商品名称这些筛选条件
下面排 20 个订单这种
qingshuang
2020-03-06 10:43:37 +08:00
@xuanbg 返回列表页显示 20 个订单,总还是要显示其他 19 个订单的,调接口肯定要调的。
第一个订单数据自己拼,调完接口再对第一个订单做个判重? 感觉有点复杂啊
感觉这和我发完贴返回论坛列表页没啥区别。。 可能论坛列表页显示的数据结构更简单些吧
qingshuang
2020-03-06 10:44:02 +08:00
@opengps 这算是前端手段,后端总归也需要其他手段保护下
gsanidt
2020-03-06 11:01:05 +08:00
你这样缓存,如果订单状态变了,你页面也没有办法显示最新的数据呀?
xuanbg
2020-03-06 16:11:37 +08:00
@qingshuang 详情数据都有,列表数据你就没有了?如果真没有,那就调接口读取好了,读不到新数据就自己加进去。

当然,这仅仅是后端无法解决你的问题时,作为前端的一种解决方案。并不是推荐这样做。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/650187

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX