我有一個需要大量時間加載的集合。我想要的是緩存它(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. Rails緩存分頁集合
- 6. 集合低級緩存
- 7. 緩存集合休眠
- 8. 緩存集合對象
- 9. 休眠集合緩存
- 10. ASP.NET SqlDataSource緩存的集合
- 11. Magento - 塊緩存
- 12. 可靠集合緩存作爲服務結構中的緩存
- 13. 如何強制Magento使用APC緩存
- 14. 如何禁用滑塊的Magento緩存
- 15. Magento:我如何緩存模塊輸出?
- 16. Magento如何緩存一個productCollection
- 17. 在緩存中存儲對象集合的方法或策略
- 18. Magento查詢緩存
- 19. Magento緩存錯誤
- 20. Magento整頁緩存
- 21. Magento緩存問題
- 22. Magento緩存問題
- 23. Magento如何克隆自定義集合
- 24. 如何使用Magento的集合對象
- 25. Magento緩存 - 規則清理緩存
- 26. 清除緩存刷新Magento的存儲和緩存返回空屏在Magento
- 27. Magento通用集合
- 28. 過濾magento集合?
- 29. 如何在小部件中使用Magento緩存?
- 30. 如何使用magento在自定義模塊中緩存模型
我怎樣才能緩存集合,而不是塊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