2012-02-14 1 views
1

, 나는 몇 가지 PDO MySQL의 쿼리를 캐시 Memcache를 사용하고 있지만 내가 할 수있는 가장 좋은 시간 때에 관해서 궁금 해요 :php mvc에서 Memcache를 시작하는 가장 좋은시기는 언제입니까? 내가 처음으로 아주 간단한 사용자 정의 MVC를 개발하고 있어요 순간

$memcached = new Memcache; 
$memcached->connect('localhost', 11211) or die ("Could not connect"); 

을에서 순간 나는 노력했습니다 다음

class Model { 

    protected static $memcached; 

    function __construct() { 

     self::$memcached = new Memcache; 
     self::$memcached->connect('localhost', 11211) or die ("Could not connect"); 
    } 
} 


class advancedModel extends Model { 

    function __construct($key) { 

     $core = Connect::getInstance(); 
     $data = parent::$memcached->get($key); 

     if(!$data){  
      $stmt = $core->dbh->prepare($sql); 
      $stmt->bindParam(':uriName', $uriName, PDO::PARAM_STR); 
      $stmt->execute(); 
      $data = $stmt->fetch(); 
      parent::$memcached->set($key, $data, 0, 3600); 
     } 

     //Memcache fails 
     return $data; 

    } 
} 

은 어떻게 든 그 모든 시간을 시작하는 것이 더 있을까 아니면 그냥 당신이 뭔가를 저장하고 mysql을 같은 새로운 연결이 연결 열어야 할 때마다 호출 할 수 있습니다?

+1

"가장 좋은 시간"은 매우 주관적이고 응용 프로그램에 따라 다릅니다. 나는 적어도 게으른 원칙을 따르고 필요할 때 처음으로로드 및 연결 *,하지만 더 빨리, 그리고 연결을 유지. 이 작업을 수행하려면 연결을 객체로 추상화하거나 적어도 하나의 메소드로 추상화해야합니다. 이상적으로는 의존성 주입을 사용하는 것이 좋습니다. 그 모든 것을 코드 샘플로 답안을 쓰는 것은 내가 지금 쓰고 싶은 것보다 오래 걸릴 것입니다. 그래서 잘하면이 아이디어를 줄 것입니다 ... – deceze

답변

2

나는 게으른 연결 PHP (http://ca3.php.net/manual/en/memcached.addserver.php)에 대한 최신 memcached 라이브러리를 사용하고 싶습니다. 이렇게하면 개체를 즉시 인스턴스화 할 수 있지만 사용하기 시작할 때까지 연결되지 않습니다.

관련 문제