目前我正在开发我的第一个非常简单的自定义mvc,我正在使用Memcache缓存一些pdo-mysql查询,但我想知道什么时候最好:
$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-connect)时都可以调用它?
我会为PHP使用更新的memcached
库(http://ca3.php.net/manual/en/memcached.addserver.php)惰性连接。通过这种方式,您可以立即实例化对象,但在您开始使用它之前,它不会连接。