我正在查询的API将采用5个参数,称为A,B,C,D,E,使用数据存储进行一些计算,然后返回大约8个字段的响应,这些字段都将被存储。不幸的是,这种计算需要一点时间,并且导致用户体验最好。值得注意的是,这个响应将在屏幕上使用javascript应用程序,而周围的技术目前是PHP 7.1,使用Laravel和MySQL
我的计划是将每个响应保存在一个表中(或类似的取决于响应),然后将它们用作直接查找,这样最终用户就可以输入A,B,C,D,E并获得即时响应
所以,这个问题基本上是两部分:
1:在一天内查询10亿次(或更多)的restful API的最佳方法是什么?目前,对于类似的场景,我一直使用Guzzle Promises一次发送5个请求
2:建议使用哪种技术来存储这些数据?它只需要是一行或实体,不需要任何关系。此数据不会用于连接或类似的任何内容。目前,该计划是使用分片MySQL,或使用Redis(但我担心Redis最终会停止扩展,比如说我对数据的需求大幅增加)。
非常感谢对这两个问题的任何见解
答案 0 :(得分:0)
关于缓存存储。
由于您的API通过HTTP协议运行,您可以做的最好的事情是关注original Python Enhancement Proposal。基本上,这意味着您需要发送正确的标头作为响应,以激活 过期 和/或 验证 缓存模型。
这也意味着您不需要编写缓存存储空间。您可以使用反向代理的现有解决方案。例如,在AWS中,您可以使用HTTP Caching。如果您自己维护服务器 - 您可以使用Varnish或Nginx作为反向代理。
答案 1 :(得分:-1)
在这种情况下,我们的猜测和你的......一样好 这种数据操作取决于:
假设您要请求的数据每天更改两次且数据未个性化。 在这种情况下,您可以设置一些CRON作业以每天获取数据2次,转换数据(仅使用所需数据,计算等...)并将它们存储在您的数据库中(MySQL如果数据不是那么大,否则使用PostgreSql)并向您的数据库显示最终用户数据(速度更快)。 也可用于清理旧数据(过去几周,几个月,几年......)
我希望你能在这里找到有用的东西,祝你好运!