gpt4 book ai didi

php - 如何在请求之间保留 MongoDB 游标?

转载 作者:可可西里 更新时间:2023-11-01 10:44:20 25 4
gpt4 key购买 nike

在网络服务器的竞争中:

为了避免重新查询(使用find),可以尝试在请求之间保留find 返回的游标引用。 Cursor 对象是一个复杂的对象,用于存储例如套接字连接。如何存储这样的对象以避免在后续的网络请求中重新查询?我在 Node.js 工作,但任何建议都是有帮助的(无论是哪种语言:rails、C#、Java、PHP)。

(我正在使用持久 session )

最佳答案

Facebook 和 Twitter 的流功能比对数据库的简单查询更复杂。像这样的系统往往在其架构中有两个主要的后端组件,为您提供数据:慢速和快速。

1) 第一个后端系统是您的数据库,通过查询访问以从流中获取一页结果(是某人的推特提要或他们的 fb 提要)。当您翻到底部或单击“更多结果”时,它只会增加页面变量并针对当前流的该页面的 API 进行查询。

2) 第二个是一个完全独立的系统,它通过 websockets 或针对 API 调用的分页向您的页面发送实时更新。这是您架构中“快速”的部分。这可能不是来自数据库,而是某处的队列。从这个队列中,处理程序将您的数据发送到您的页面,这是一个订阅者。

系统是这样设计的,因为要实现巨大的扩展,您不能依赖实时更新数据库。它是大批量完成的。因此,您通过架构的快速部分运行该数据的一个非常小的子集,了解用户从“快速”后端获取数据的方式可能与最终在“慢速”后端中的显示方式不完全相同,但是已经足够接近了。

所以...故事的寓意:

您不想保留您的数据库游标。您想考虑 1) 我是否需要实时更新 2) 如果需要,我该如何构建我的系统,以便第一次调用获取我的大部分数据,第二次调用/机制可以使它保持最新。

关于php - 如何在请求之间保留 MongoDB 游标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17009516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com