2011-12-06 7 views
3

우리 응용 프로그램에서 우리는 응용 프로그램의 객체를 나타 내기 위해 서브 클래스 인 Zend_Db_Row을 사용합니다. 이러한 객체는 다양한 가져 오기 기능에 의해 반환됩니다.Zend_Db_Row 서브 클래스의 로컬 "Cache"

<?php 
require_once 'Zend/Db.php'; 

class Model_Users extends Zend_Db_Table_Abstract 
{ 
    protected $_name = 'users'; 
    protected $_primary = 'userId'; 
    protected $_rowClass = 'Model_User'; 

    /** 
    * fetch user by email 
    * 
    * @param string $email 
    */ 
    public function fetchWithEmail($email) 
    { 
     $select = $this->select(); 
     $select->where('email = ?', $email); 
     return $this->fetchRow($select); 
    } 

} 

다른 기능, 모델, 컨트롤러 등에서 가져 오기 기능을 여러 번 (같은 값으로) 호출하는 것이 문제입니다. 예를 들어 $modelUsers->fetchWithEmail('[email protected]')은 단일 PHP 스크립트 실행에서 10 번 나타납니다.

이러한 개체를 캐싱하기 위해 memcached를 사용할 계획이지만 데이터베이스를 10 번 호출하는 대신 캐시 서버를 10 번 호출합니다. memcache를 사용하는 것이 더 빠르지 만 캐시 서버를 한 번만 호출해야합니다 (10 번 대신).

어떤 유형의 로컬 캐시를 보관할 수있는 모든 프레임 워크/모듈이 있습니까? 스크립트가 $modelUsers->fetchWithEmail('[email protected]')을 호출하면 스크립트 실행이 완료되거나 (업데이트 또는 삭제 함수가 데이터베이스에서 해당 행의 값을 변경하기 전까지) 스크립트 메모리에 들어갑니다.

답변

1

Zend_Cache이 작동 것입니다, 당신은 등 APC, Memcache를, 플랫 파일을 사용할 수

관련 문제