Tôi có một bộ sưu tập cần thời gian đáng kể để tải. Những gì tôi muốn là để cache nó (APC, Memcache). Không thể cache toàn bộ đối tượng (vì nó không thể được unserialized và nó là hơn 1 MB). Tôi nghĩ rằng bộ nhớ đệm dữ liệu thu thập ($ col-> getData()) là con đường để đi, nhưng tôi không tìm thấy cách nào để xây dựng lại đối tượng dựa trên mảng này. Bất kì manh mối nào?Làm thế nào để bộ nhớ cache một bộ sưu tập trong Magento?
Trả lời
Tôi thực sự không biết, nhưng tôi đã tìm kiếm tất cả các tệp có từ "cache" trong đó có tên tệp là "Collection.php" và có một vài kết quả. Ví dụ đầy hứa hẹn nhất để xem xét có thể là phương pháp Mage_Sales_Model_Entity_Quote_Item_Collection (_getProductCollection()
). Có vẻ như Varien_Data_Collection
(là lớp cha mẹ của bất kỳ bộ sưu tập Magento nào) có một vài phương pháp liên quan đến bộ nhớ cache: initCache() and _getCacheInstance().
Không thể nói trước đây nhưng có thể hữu ích.
Chúc may mắn.
Bạn có thể tìm thêm thông tin tại đây: Can I use Magento's Caching layer as a Key/Value Store?
Tôi sẽ đăng thêm thông tin tại đó khi tôi tìm thấy.
Bộ sưu tập đã có một số bộ nhớ đệm được xây dựng trong nhưng họ cần một chút khiến nên đặt này trong constructor của một bộ sưu tập:
$cache = Mage::app()->getCacheInstance();
$prefix = "SomeUniqueValue";
$this->initCache($cache, $prefix, array(Mage_Catalog_Model_Product::CACHE_TAG));
Chọn thẻ phù hợp với nội dung của bộ sưu tập để nó sẽ được rửa tự động . Bằng cách này, xây dựng một ID dựa trên truy vấn đang được thực hiện, nó hữu ích nhất khi bộ sưu tập được lọc, sắp xếp hoặc phân trang - nó tránh xung đột phiên bản.
Nói chung điều này hầu như không được sử dụng bởi vì khi bạn truy xuất dữ liệu, bạn hầu như luôn hiển thị nó, có thể dưới dạng HTML, do đó có ý nghĩa để lưu vào bộ nhớ cache thay thế. Chặn bộ nhớ đệm được sử dụng rộng rãi và được tài liệu tốt hơn.
- 1. Xóa bộ nhớ cache Magento
- 2. Lọc bộ sưu tập để Magento
- 3. Bộ sưu tập lưu trong bộ nhớ đệm trong backbone.js?
- 4. Bộ sưu tập Magento không chọn thuộc tính
- 5. Làm thế nào để xóa bộ nhớ cache trong Solr?
- 6. Làm thế nào để sử dụng Magento bộ nhớ đệm trong khi sử dụng "API Magento"
- 7. Làm thế nào để loại bỏ bộ nhớ cache APC
- 8. Bộ nhớ cache tập tin Python
- 9. Làm thế nào để xóa bộ nhớ cache/bộ nhớ đệm in trên MacOSX
- 10. Làm thế nào để tạo một phần cấu hình có chứa một bộ sưu tập các bộ sưu tập?
- 11. Làm cách nào để triển khai bộ nhớ cache hình ảnh trong bộ nhớ trong Android?
- 12. Magento bộ nhớ cache không nhận được xóa
- 13. Bộ nhớ cache, tắt bộ nhớ đệm
- 14. Cách sắp xếp bộ sưu tập trong Magento?
- 15. Làm cách nào để tham gia bộ sưu tập trong Magento?
- 16. Làm cách nào để xem bộ nhớ cache trong Android?
- 17. Bộ sưu tập sản phẩm lọc Magento theo nhiều loại
- 18. Google App Engine: Làm thế nào để vô hiệu hóa bộ nhớ cache trên các tập tin 'tĩnh', hoặc làm cho bộ nhớ cache thông minh
- 19. Làm mới bộ nhớ cache của Akamai
- 20. Làm thế nào để không đồng bộ tuôn ra một tập tin ánh xạ bộ nhớ?
- 21. Làm thế nào để sử dụng bộ nhớ cache cấp thứ hai cho bộ sưu tập tải lười biếng trong Hibernate?
- 22. Magento: Sắp xếp bộ sưu tập sản phẩm
- 23. Làm cách nào để thêm các phần tử từ một bộ sưu tập không tồn tại trong bộ sưu tập thứ hai vào bộ sưu tập thứ ba?
- 24. Làm thế nào để vô hiệu hóa khung thực thể 4 bộ nhớ cache nội bộ
- 25. Buộc xóa bộ nhớ cache
- 26. Làm cách nào để xử lý tệp bộ nhớ cache?
- 27. Symfony2 tắt bộ nhớ cache?
- 28. Làm thế nào để xác định một bộ sưu tập trong một configSection tùy chỉnh
- 29. Làm thế nào để trích xuất một phạm vi từ một bộ sưu tập trong PowerShell?
- 30. Lọc bộ sưu tập so với một số bộ sưu tập trong Backbone?
Cách tôi có thể lưu bộ nhớ đệm thay vì từ khối Objetc ??? – davidselo
Tôi không hiểu câu hỏi. – clockworkgeek
Nếu tôi có thể thực hiện trought một Block với Mage :: getModel ('example/example') -> getCollection() -> initCache (...). Tạo bộ sưu tập mới từ phiên bản Chặn – davidselo