Magento如何缓存productCollection

2024-01-26

我注意到我的主页需要很长时间才能加载 - 根据 site24x7.com 事实上超过 6 秒,所以我一直在关闭元素以尝试确定原因是什么,这取决于我制作的 2 个产品集合文件展示新产品和畅销产品。

当我从主页中删除这些内容后,页面加载时间不到 0.5 秒。

那么,有人可以帮助优化和缓存产品集合吗?我在服务器上安装并运行了 APC,但我不确定它是否缓存位于 app/design/frontend/default/MY_THEME/catalog/product/newproducts.phtml 中的文件

所以,我的最畅销系列(实际上浏览次数最多)看起来像这样;

    <?php $storeId = Mage::app()->getStore()->getId(); // return current store id  ?>
    <?php $_productCollection= Mage::getResourceModel('reports/product_collection')
    ->addAttributeToSelect('*')
    ->addStoreFilter($storeId)
    ->addViewsCount()
    ->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH)
    ->addFieldToFilter('status',Mage_Catalog_Model_Product_Status::STATUS_ENABLED);
    $_productCollection->getSelect()->limit(8)
    ?>

我该如何进一步优化这个?


Try

  $storeId = Mage::app()->getStore()->getId(); 
  $cache = Mage::getSingleton('core/cache');
  $key = 'homepage-most-view-' . $storeId;

  if(! $data = $cache->load($key)){
      $_productCollection= Mage::getResourceModel('reports/product_collection')
      ->addAttributeToSelect('*')
      ->addStoreFilter($storeId)
      ->addViewsCount()
      ->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH)
      ->addFieldToFilter('status',Mage_Catalog_Model_Product_Status::STATUS_ENABLED);
      $_productCollection->getSelect()->limit(8)
      // get the element you need from  $_productCollection and store in $array
      $data = serialize($array);
      $cache->save(urlencode($data), $key, array("homepage_cache"), 60*60*24);
  }
  else{
      $data = unserialize(urldecode($data)); 
 }

See

  • http://www.nicksays.co.uk/developers-guide-magento-cache/ http://www.nicksays.co.uk/developers-guide-magento-cache/
  • http://inhoo.net/ecommerce/magento/magento-block-caching/ http://inchoo.net/ecommerce/magento/magento-block-caching/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Magento如何缓存productCollection 的相关文章

  • IE 302 重定向无缓存标头问题

    发布信息后返回 302 重定向 此重定向旨在重新加载当前页面 这一切都工作正常 但 IE 在标头中添加了 No Cache Cache Control no cache 我们使用 Squid 来缓存我们的内容 并将其放在标头中绕过了鱿鱼 由
  • 在不运行控制台命令的情况下清理缓存的最佳方法是什么?

    在我的项目的管理面板中 我编写了更改要使用的数据库名称的功能 我把新的数据库名称写在parameters ini 之后必须清理缓存才能加载新配置 在不运行控制台命令的情况下清理缓存的最佳方法是什么 或者是否有另一种最佳实践如何更改当前数据库
  • 您常见的 Magento 配置错误有哪些? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Magento:每个订单限制类别中的 3 个产品

    我正在尝试在 Magento 中设置一个示例产品类别 允许人们每次购买时最多选择 3 个免费样品 但如何限制每个订单仅从该类别中选择 3 个样品 EDIT 这是 app code local MagePal LimitCartProduct
  • Magento 2 REST API 客户自定义属性

    Magento 2 REST API 文档解释了在更新或创建客户时设置custom attributes 的方法 http devdocs magento com swagger index 20 html http devdocs mag
  • 使用 Hibernate 作为 ORM 机制的 Web 应用程序中的 L1 和 L2 缓存有什么区别?

    我只想要一些有关使用 L1 缓存和 L2 缓存的标准用途的一般信息 我很好奇 因为我正在研究使用赤土陶器作为二级缓存的系统 并且我发现它也有一级缓存 L1 缓存是每个 Hibernate 会话都存在的缓存 并且该缓存不在线程之间共享 该缓存
  • 在 SPA 中加载外部脚本和样式文件

    我有一种 SPA 它使用 API 来获取数据 该 SPA 有一些实例 它们都使用通用样式和脚本文件 所以我的问题是 当我更改这些文件中的一行时 我将必须打开每个实例并更新文件 这对我来说真的很耗时 一种方法是将这些文件放在服务器中的文件夹中
  • 如何缓存 ASP.NET 网站以获得更好的性能

    我是一名网页设计师 通常设计不需要更新的企业网站 所以我想将输出缓存一天 我怎样才能做到这一点 此外 任何有关在慢速服务器上提高 ASP NET 性能的建议都被接受 请注意 ASP NET 缓存有一个bug http connect mic
  • 使用Intel的PIN工具来计算程序中缓存命中/未命中的次数

    我一直在尝试编写一个 pintool 来检测给定程序中的缓存命中和未命中情况 我发现有INS IsMemoryRead Write等调用来判断指令是否是LD ST 有没有办法确定指令是否命中或未命中缓存 如果是这样 是否还可以获得从缓存 内
  • F# 正确使用序列缓存

    我正在尝试将 Seq cache 与我制作的函数一起使用 该函数返回最多为 N 的素数序列 不包括数字 1 我无法弄清楚如何将缓存的序列保留在范围内 但仍然使用它在我的定义中 let rec primesNot1 n 2 n gt Seq
  • 通过分布式数据库聚合作业优化网络带宽

    我有一个分布式 联合数据库 结构如下 数据库分布在三个地理位置 节点 每个节点集群有多个数据库 关系数据库是 PostgreSQL MySQL Oracle 和 MS SQL Server 的混合体 非关系数据库是 MongoDB 或 Ca
  • 如何在 Django 测试服务器中防止 HTTP 304

    我在 Django 中有几个项目 并且时不时地在一个和另一个之间交替 它们都有一个 media 路径 由django views static serve 并且他们都有一个 media css base css file 问题是 每当我运行
  • ASP.NET - Google Chrome 缓存 DropDownList 选择

    我的购物车页面上的 Google Chrome 和 Safari 似乎遇到了缓存问题 购物车中有 2 个下拉列表 当您在更改下拉列表中的值后点击结帐按钮时 它会将列表中选择的内容提交到数据库 解释意外的行为有点困难 所以我会尝试一步一步地写
  • 用于请求带有临时缓存的远程 Observable 的 RxJava 模式

    用例是这样的 我想暂时缓存最新发出的昂贵的Observable响应 但在它过期后 返回到昂贵的源Observable并再次缓存它 等等 一个非常基本的网络缓存场景 但我真的很难让它工作 private Observable
  • make_shared<>() 中的 WKWYL 优化是否会给某些多线程应用程序带来惩罚?

    前几天我偶然看到这个非常有趣的演示 http channel9 msdn com Events GoingNative GoingNative 2012 STL11 Magic Secrets作者 Stephan T Lavavej 其中提
  • Magento - 将特定父类别的子类别列为链接

    我是 php 的初学者 并且一直试图将一个父类别的子类别作为链接调用 我得到了这个 它调出了 getName 但 getUrl 根本没有返回任何 URL 输出代码只是 li a href name of sub a li
  • 过期时自动重新填充缓存

    我当前缓存方法调用的结果 缓存代码遵循标准模式 如果存在 则使用缓存中的项目 否则计算结果 在返回之前将其缓存以供将来调用 我想保护客户端代码免受缓存未命中的影响 例如 当项目过期时 我正在考虑生成一个线程来等待缓存对象的生命周期 然后运行
  • 如何禁用 CRM 2011 Xrm 缓存?

    我的 crm 2011 缓存有问题 我不需要它 但我不知道如何禁用它 首先我生成这个 CrmSvcUtil exe codeCustomization Microsoft Xrm Client CodeGeneration CodeCust
  • Windows iis 7.0 上的 APC 不稳定

    我的 IIS 非常不稳定 因为它总是由于某种与 APC 相关的原因而重新启动 服务器的规格如下 Intel R Xeon CPU 3GHZ 3GHZ 2GB RAM 64bit APC 和服务器规格 3 1 7 dev PHP Versio
  • magento成功页面变量

    我正在尝试捕获一些 magento 成功页面变量以传递给我们的广告公司 到目前为止 我已经得到了这个 但变量没有输出任何内容 数据需要采用以下格式 price1 price2 price3 qty1 qty2 qty3 sku1 sku2

随机推荐

  • 在 Powershell 中写入十六进制转义字符

    有没有办法在Powershell中写这样的东西 Linux 将与 Perl 一起使用 char foo x41 我需要在我的一个程序中输入一些不可打印的字符 你可以这样做将 int 转换为 char 带十进制数 foo 65 as char
  • HttpClient GetAsync 方法 403 错误

    我正在尝试简单地显示 github 存储库 网址 https api github com search repositories q pluralsight https api github com search repositories
  • 使用cmd命令打开pwsh而不退出

    我正在尝试启动一个 Powershell 窗口 使用以下命令启动 ssh 会话 pwsh exe noexit Command ssh
  • 如何在 LINQ 中对单个联接中的多个字段进行左联接

    我正在尝试对 LINQ 执行这个简单的 sql 查询 但它给了我错误 这是需要转换为 LINQ 的 SQL 查询 DECLARE groupID int SET groupID 2 SELECT FROM dbo Person p LEFT
  • C++ 中两个向量的逐元素乘法

    我试图用两个向量进行以下数学运算 v1 a1 a2 a3 a4 a5 v2 b1 b2 b3 b4 b5 想要计算 v a2 b2 a3 b3 a4 b4 a5 b5 请注意 我不想要新向量中的第一个元素 我想知道是否有一种比 for 循环
  • Mongo shell 中的 NumberLong 算术

    如何在 Mongo shell 中对 NumberLong 值执行精确算术 据我了解 Javascript 只有一种数字类型 number 通常限制为 54 位浮点精度 使用 例如 标准加法的直接算术显示将强制转换为较低精度类型 gt Nu
  • 向 geom_bar() / geom_col() 条添加图案或纹理?

    有时 我需要某种用于 geom bar geom col 条的图案或纹理 即用于黑白打印 例如 以下内容对于某些人来说可能很难查看 library ggplot2 library dplyr warn conflicts FALSE lib
  • 设置标头并使用 $http POST 发送数据到 pocket api 返回 CORS

    无法向 pocket api 发送 http post 请求以获取请求令牌 我已经拿到消费者密钥了 问题似乎出在设置标头和发送请求中的数据 在浏览器中查看请求时 不会显示任何标头和数据 配置请求 var req method POST ur
  • 从整数的商中获取双精度值

    int velMperMin 667 int distM 70 double movT distM velMperMin 60 movtT必须等于6 30 但它是0 您需要将除法的操作数之一转换为双精度值 像这样 double movT d
  • 使用 UMAP 和 HDBScan 进行集群

    我有大量的文本数据 大约有 5000 人输入 我使用 Doc2vec 为每个人分配了一个向量 使用 UMAP 缩减为二维 并使用 HDBSCAN 突出显示其中包含的组 目的是突出具有相似主题相似性的组 这导致了如下所示的散点图 这看起来可以
  • Gitlab CI如何部署最新到特定目录

    我在 Gitlab 中有两个项目 其中一个是另一个项目 我们称这个存储库为 main 的子模块 我们称其为 前端模板 我已经为 frontend templates 存储库设置了 Gitlab CI 构建 问题是我不需要测试或构建 我只需要
  • 将 UIView 中的标签居中

    将标签居中的最佳方法是什么UIView 如果你做了类似的事情 UILabel myLabel UILabel alloc initWithFrame CGRectMake view frame origin x 2 view frame o
  • Flask 只能看到通过curl 发送的多个参数中的第一个参数

    我正在使用curl 向需要多个查询参数的Flask 路由发出请求 但是 日志仅显示 url 中的第一个参数 Flask 看不到第二个参数 出了什么问题 app route path methods GET def foo print req
  • 从 .NET 3.5 WCF Web 服务 (REST) 返回 JSON 和 XML 格式

    我有一个返回 XML 响应的现有 Web 服务 我想添加一些返回 JSON 的新方法 我是否必须创建一个以 JSON 形式返回的单独 Web 服务 还是可以混合使用 如果我使用 ResponseFormat WebMessageFormat
  • 设置 分钟间隔 时 UIDatePicker 的奇怪行为

    以下代码在 iOS 4 3 下显示奇怪的行为 也许其他版本也是如此 在这个例子中 一个UIDatePicker其日期设置为4 Aug 2011 2 31 PM被展示 这UILabel以下UIDatePicker显示日期以供参考 他们三个UI
  • 重写派生类中的成员字段

    我有下面的代码片段 include
  • 如何将 pygame 应用程序转换为 iOS 应用程序

    我使用 pygame 在 python 中编写了一个非常小的未完成的游戏 有没有一种简单的方法可以将其转换为我可以在 iPhone 上使用和测试的应用程序 而无需在 kivvy 等中重写整个代码 没有简单的方法 不可能转换代码 但对于一款简
  • Spark数据集/数据帧连接NULL倾斜键

    使用 Spark Dataset DataFrame 连接时 我面临长时间运行并因 OOM 作业而失败 这是输入 约 10 个不同大小的数据集 大部分都很大 gt 1 TB 所有左连接到一个基础数据集 一些连接键是null 经过一些分析 我
  • 动态大小 UICollectionView 单元格

    1 我怎样才能实现如图所示UICollectionView 2 我已经尝试过 CGSize collectionView UICollectionView collectionView layout UICollectionViewLayo
  • Magento如何缓存productCollection

    我注意到我的主页需要很长时间才能加载 根据 site24x7 com 事实上超过 6 秒 所以我一直在关闭元素以尝试确定原因是什么 这取决于我制作的 2 个产品集合文件展示新产品和畅销产品 当我从主页中删除这些内容后 页面加载时间不到 0