2011-01-31 2 views
0

내 프로젝트에서 아무런 문제없이 memcache를 사용하고 있습니다. find() 기반 쿼리 및 사용자 지정 쿼리에서 잘 작동합니다.memcached와 cakephp 네이티브 페이지 매김 방법을 사용하는 방법?

하지만 페이지 매김 된 결과를 memcache에 어떻게 사용할 수 있습니까? 나는 코드의 블록을 다음 한 내가 memcache에 넣어 노력하고 있어요 :

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

내가 캐시에 변수 $ 카테고리를 넣어하더라도, 그것은 작동하지 않습니다. 아이디어가 있으면 도움주세요.

미리 감사드립니다. Vikas

+0

왜 페이지 매김 캐시. 다른 분야 또는 다른 주문으로 분류하면 어떻게됩니까? 10 페이지의 필드가 2 페이지를 넘는 20 개의 행으로 2 X 2 X 10 버전의 캐시를 제공합니다 (ive가 여러 가지 방법을 놓치지 않았다면) – dogmatic69

+0

더 나은 페이지로드 속도를 위해 캐싱이 필요합니다. 모든 페이지에서 수천 개의 레코드를 가져오고로드하는 데 많은 시간을 소비합니다. –

+0

@ dogmatic69, 정렬을 사용하고 있지 않습니다. (하드 코딩 된) 그래서 문제는 아닙니다. –

답변

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')); 
+0

과 동일하게 작동하지만 _을 사용할 수는 있지만 어디에서 건지 알 수없고 게으 르기 때문에 찾을 수 없습니다. D – dogmatic69

+0

답장을 보내 주셔서 감사합니다. 이미 페이지 URL과 페이지 번호를 사용하여 캐시를 설정하려고 시도했습니다. 그러나 또 다른 문제를 일으킨다. 만약 $ this-> paginate(); 컨트롤러 내부에서 호출되지 않기 때문에 뷰 파일의 페이지 매김 도우미가 작동하지 않습니다. 여기서 볼 수있는 유일한 방법은 내 페이지 매김 클래스를 작성하는 것입니다. 그리고 모델을보고 모든 데이터베이스 관계를 가져 오는 cake의 기능으로부터 이익을 얻지는 않을 것입니다. –

관련 문제