2011-01-31 66 views
0

我一直在我的項目中使用memcache沒有任何問題。 它在基於find()的查詢和自定義查詢中效果很好。如何使用cakephp本地分頁方法使用memcached?

但是,如何將分頁結果與memcache一起使用? 我有以下的代碼塊我試圖把在內存緩存:

$this->paginate = array('order'=>'order_by ASC','limit' => 1000); $this->Category->recursive = 2; $Categories = $this->paginate('Category',array('id'=>5));

即使我把緩存變量$類別,這是行不通的。 任何想法,請幫助。

非常感謝。 Vikas

+0

爲什麼要緩存分頁。當他們按另一個字段或不同的順序排序時會發生什麼?只有20行超過2頁的10個字段將提供2個X 2 X 10個版本的緩存(如果我沒有錯過幾種不同的方式) – dogmatic69 2011-01-31 21:17:09

+0

我需要緩存以提高頁面加載速度。它會在每個頁面上獲取數千條記錄並花費大量時間進行加載。 – 2011-01-31 23:24:15

回答

0
$tmp = sha1($this->params['url']['url']); 
    $something = Cache::read('something_'.$tmp); 
    if(!$something){ 
    $something = $this->paginate(); 
    } 
    Cache::write($something, 'something_'.$tmp); 

    $this->set(compact('something'));