我有一个需要花费很长时间才能加载的集合。我希望能够缓存它(使用APC、Memcache等)。但是,无法将整个对象进行缓存(因为它无法反序列化且超过1MB)。我认为缓存集合数据($col->getData() )是可行的,但是我找不到根据这个数组重建对象的方法。有什么线索吗?
我有一个需要花费很长时间才能加载的集合。我希望能够缓存它(使用APC、Memcache等)。但是,无法将整个对象进行缓存(因为它无法反序列化且超过1MB)。我认为缓存集合数据($col->getData() )是可行的,但是我找不到根据这个数组重建对象的方法。有什么线索吗?
集合已经内置了一些缓存功能,但它们需要一点提示,所以将以下内容放入集合的构造函数中:
$cache = Mage::app()->getCacheInstance();
$prefix = "SomeUniqueValue";
$this->initCache($cache, $prefix, array(Mage_Catalog_Model_Product::CACHE_TAG));
Mage_Sales_Model_Entity_Quote_Item_Collection (_getProductCollection()
方法。看起来Varien_Data_Collection
(它是任何Magento集合的父类)有一些与缓存相关的方法:initCache()和_getCacheInstance()。
我以前没有使用过它们,但将来可能会有用。