幾種緩存,需要用到前端配置,加后端實例配合着用
片段緩存:
public function indexAction()
{
//渲染頁面
$this->view->setTemplateAfter('common');
//緩存片段
//前端配置
$frontcache = new \Phalcon\Cache\Frontend\Output(array(
"lifetime" => 86400
));
//后端處理
$cache = new \Phalcon\Cache\Backend\File($frontcache, array(
"cacheDir" => "../app/cache/"
));
//查詢片段是否存在
$content = $cache->start("index.pthm");
if ($content == null) {
echo date("r");
$this->view->pick("index/index");
//緩存片段
$cache->save();
} else {
echo $content;
}
}
文件緩存:
public function lastAction()
{
//數據緩存
//前端配置
$frontcache = new \Phalcon\Cache\Frontend\Data(array(
"lifetime"=>86400
));
//后端實例
$cache = new \Phalcon\Cache\Backend\File($frontcache, array(
'cacheDir'=>'../app/cache/'
));
$cacheKey = 'customer_10';
$customer = $cache->get($cacheKey);
//在3600有效期內讀取緩存
// $customer = $cache->get($cacheKey, 3600);
if($customer == null)
{
$customer = \SysCustomer::find(array(
"limit"=>10
))->toArray();
//保存緩存
$cache->save($cacheKey, $customer);
//單獨設置緩存的有效期
// $cache->save($cacheKey, $customer,3600);
}
var_dump($customer);
}
注意:MainTask.php
如果你是命令行運行MainTask.php,在用文件緩存的時候,如果設置的是cacheDIR='/',以windows為例,我的php盤是f:\,那么生成的緩存文件在 f:\ 根目錄下
memcache緩存,本例是windows下:
public function memcacheAction()
{
//memcache緩存
//前端配置有效期
$frontcache = new \Phalcon\Cache\Frontend\Data(array(
"lifetime"=>86400
));
//后端實例化
$memcache = new \Phalcon\Cache\Backend\Memcache($frontcache, array(
"servers" => array(
array(
"host" => "127.0.0.1",
"port" => "11211",
"weight" => "1"
)
)
));
$mydata = $memcache->get('my-data');
if($mydata == null) {
$mydata = array(1,2,3,4,5);
//保存緩存
$memcache->save('my-data', $mydata);
echo "--";
}
var_dump($mydata);
}
