
<?php
require_once 'Zend/Controller/Action.php';
require_once 'Zend/Cache.php';
require_once 'Zend/Registry.php';
require_once 'Zend/Db.php';
require_once 'Zend/Db/Table.php';
class IndexController extends Zend_Controller_Action
{
public function init()
{
$params = array(
'host' => 'localhost',
'username' => 'root',
'password' => 'root',
'dbname' => 'mysql'
);
$db = Zend_Db::factory('Pdo_Mysql', $params);
Zend_Db_Table::setDefaultAdapter($db);
Zend_Registry::set('db', $db);
}
public function indexAction()
{
// 前端緩存配置
$frontendOptions = array(
'lifeTime' => 7200, // 2 小時生命周期
'automatic_serialization' => true // 自動序列化
);
// 後端存儲配置
$backendOptions = array(
'cache_dir' => 'C:/tmp/' // 緩存文件目錄
);
// 獲取緩存核心對象
$cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions);
// 緩存讀取邏輯
if (!$result = $cache->load('myresult')) {
// 緩存未命中:查詢數據庫
$dbAdapter = Zend_Registry::get('db');
$result = $dbAdapter->query('SELECT * FROM user')->fetchAll();
$cache->save($result, 'myresult');
echo "This one is from database!<br/>";
} else {
// 緩存命中
echo "This one is from cache!<br/>";
}
print_r($result);
}
}
Core + 後端 Filemyresult此模式適用於頻繁讀取、較少變更的數據場景,顯著降低數據庫壓力,提升響應速度。