我有一个需要大量时间加载的集合。我想要的是缓存它(APC,Memcache)。不可能缓存整个对象(因为它不能被反序列化,并且它超过1 MB)。我在想,缓存集合数据($ col-> getData())是要走的路,但我没有办法根据这个数组重建对象。任何线索?如何在Magento中缓存集合?
6
A
回答
1
我真的不知道,但我搜索了所有文件名为“Collection.php”的文件名为“cache”的文件,并获得了一些结果。最有希望的例子可能是Mage_Sales_Model_Entity_Quote_Item_Collection (_getProductCollection()
方法)。看起来像Varien_Data_Collection
(这是任何magento集合的父类)有几个缓存相关的方法:initCache() and _getCacheInstance().
不能说我以前用过它们,但有一天可能会有用。
祝你好运。
0
你可以在这里得到更多的信息:Can I use Magento's Caching layer as a Key/Value Store?
我会在那里发布更多信息,因为我觉得它。
4
收藏已经有一些缓存内置的,但他们需要一些提示,以便把这个集合的构造函数:
$cache = Mage::app()->getCacheInstance();
$prefix = "SomeUniqueValue";
$this->initCache($cache, $prefix, array(Mage_Catalog_Model_Product::CACHE_TAG));
选择适合于集合的内容标记,以便它会自动刷新。这种方式基于正在执行的查询构建一个ID,当集合被过滤,排序或分页时,它非常有用 - 它避免了版本冲突。
通常这很难被使用,因为当你检索数据时,你几乎总是以HTML的形式显示它,所以缓存输出是有意义的。块缓存被广泛使用和更好地记录。
相关问题
- 1. 在backbone.js中缓存集合?
- 2. 缓存集合样集合
- 3. 如何循环Magento集合?
- 4. 二级缓存不会在NHibernate中缓存过滤的集合?
- 5. Magento与缓存工作,无法序列化集合
- 6. 缓存集合休眠
- 7. ASP.NET SqlDataSource缓存的集合
- 8. 休眠集合缓存
- 9. Magento - 块缓存
- 10. 可靠集合缓存作为服务结构中的缓存
- 11. Magento:我如何缓存模块输出?
- 12. 如何强制Magento使用APC缓存
- 13. Magento如何缓存一个productCollection
- 14. 如何禁用滑块的Magento缓存
- 15. Magento查询缓存
- 16. Magento缓存问题
- 17. Magento缓存问题
- 18. 如何使用Magento的集合对象
- 19. 在缓存中存储对象集合的方法或策略
- 20. Magento通用集合
- 21. 过滤magento集合?
- 22. 如何在小部件中使用Magento缓存?
- 23. 如何结合产品集合中的SQL OR条件? Magento的?
- 24. 如何在magento集合中加载mage_sales_flat_quote_item_option此表?
- 25. Magento:如何在客户集合中以编程方式搜索
- 26. 如何工作Magento中媒体/目录/产品/缓存的缓存
- 27. 如何利用Magento的缓存,同时使用“的Magento的API”
- 28. Hibernate - EhCache - 缓存关联/集合/集合的哪个区域?
- 29. 如何从magento中的产品集合中获取库存状态
- 30. Rails 5 - 集合缓存不刷新
我怎样才能缓存集合,而不是块Objetc? – davidselo 2012-05-06 16:19:49
我不明白这个问题。 – clockworkgeek 2012-05-06 17:13:07
如果我能用Mage :: getModel('example/example') - > getCollection() - > initCache(...)做一个Block。自Block实例创建新的集合 – davidselo 2012-05-07 10:31:23