【问题标题】:How to utilize Magento caching while using "Magento APIs"如何在使用“Magento API”时利用 Magento 缓存
【发布时间】:2025-12-14 18:05:01
【问题描述】:

我使用 Magento 的方式是这样的:

  • 我们正在使用 Magento 管理/仪表板来设置商店、目录和相关内容
  • 我们正在为面向客户的店面使用 Magento 的 SOAP 和 RPC API 接口,即在我们的 UI 层中列出商店、目录、产品、购买、评论等是通过调用各种 Magento API 来完成的。

我们注意到,我们面向客户的店面非常缓慢,因为即使使用 Magento 下载附带的示例数据,Magento SOAP 和 RPC API 也需要很长时间才能返回数据。即使我们在 Magento 管理面板中启用了所有可用的缓存,我们注意到 Magento 正在将每个查询发送到 MySQL 数据库,并且这些查询往往会在持续的重负载下减慢整个过程。

所以我想知道我是否设置正确或错过了什么? 我在这里重复一遍,我们没有使用 Magento UI,而是使用 Java EE、Spring MVC 等构建了自己的远程 UI 层,它使用 Magento 的 SOAP 和 RPC API 接口与 Magento 通信。

是否可以为这些 API 调用启用其他形式的缓存?以及如何使用某种缓存支持来避免来自 Magento 的数据库调用?

【问题讨论】:

  • 您好 Anubhava,我有类似的情况,想了解更多关于您的经历。你能解决问题吗?
  • @142857:不,在使用 Magento SOAP API 时,我找不到任何本地 Magento 缓存方式来避免 DB 调用。我们最终在 Magento 前面放置了一个代理来支持这种缓存。
  • 我从另一位用户那里得知,与主题相比,magento api 速度较慢,因此不是首选的开发方式。你注意到这样的不同了吗?另外,请通过*.com/questions/12640491/… 请求您的 cmets
  • @142857:谢谢,我对你的问题发表了评论,也投了赞成票。

标签: caching magento


【解决方案1】:

Magento 在 API 以及普通的前端访问中使用配置 (XML) 缓存。使用 API 从 MySQL 检索数据的成本与使用前端访问相同。目前还没有原生 API 响应缓存,只有 XML 和 MySQL 查询缓存。您必须自己添加代理或其他任何东西。

在我看来,接收缓存数据会很痛苦,你可能会得到迟到和不匹配的数据。我将从良好的 MySQL 和 HTTP Server 性能调整开始,如 http://info.magento.com/rs/magentocommerce/images/Magento_PerformanceWhitepaper-EEv1-9.1.pdf 中所述。

【讨论】: