標籤:驅動 store 操作 永久 find php exp thinkphp emc
thinkphp採用cache類提供緩衝功能支援,採用驅動方式,在使用緩衝之前需要進行初始化操作。支援的緩衝類型包括file、memcache、wincache、sqlite、redis和xcache等,
預設情況下是file類型,配置redis緩衝可以單一配置redis也可以同時使用多個緩衝類型。配置方式分別如下:一、僅配置redis緩衝,在設定檔(app/config.php)中修改緩衝設定如下:
‘cache‘ => [ // 驅動方式 // ‘type‘ => ‘File‘, // 緩衝儲存目錄 // ‘path‘ => CACHE_PATH, // 緩衝首碼 // ‘prefix‘ => ‘‘, // 緩衝有效期間 0表示永久緩衝 // ‘expire‘ => 0, ‘redis‘ => [ // 驅動方式 ‘type‘ => ‘redis‘, // 伺服器位址 ‘host‘ => ‘192.168.1.xxx‘, //redis伺服器ip ],],
二、配置多個緩衝類型,使用符合緩衝類型,配置方式如下:
‘cache‘ => [ // 使用複合緩衝類型 ‘type‘ => ‘complex‘, // 預設使用的緩衝 ‘default‘ => [ // 驅動方式 ‘type‘ => ‘File‘, // 緩衝儲存目錄 ‘path‘ => CACHE_PATH, ], // 檔案快取 ‘file‘ => [ // 驅動方式 ‘type‘ => ‘file‘, // 設定不同的緩衝儲存目錄 ‘path‘ => RUNTIME_PATH . ‘file/‘, ], // redis緩衝 ‘redis‘ => [ // 驅動方式 ‘type‘ => ‘redis‘, // 伺服器位址 ‘host‘ => ‘192.168.1.xxx‘, //redis伺服器ip ],],
使用符合緩衝類型時,需要根據需要使用store方法切換緩衝。 當使用
Cache::set(‘name‘, ‘value‘);Cache::get(‘name‘);
的時候,使用的是default緩衝標識的緩衝配置。 如果需要切換到其它的緩衝標識操作,可以使用:
// 切換到file操作Cache::store(‘file‘)->set(‘name‘,‘value‘);Cache::get(‘name‘);// 切換到redis操作Cache::store(‘redis‘)->set(‘name‘,‘value‘);Cache::get(‘name‘);
比如,查詢一篇文章時首先從redis中查詢,若未查到資訊則從資料庫中查詢出結果,並儲存到redis中。
$article =Cache::store(‘redis‘)->get(‘artcicle‘.$id);if (!$article) { $article = Db::name(‘article‘)->where(‘status‘,1)->cache(true)->find($id); Cache::store(‘redis‘)->set(‘article‘.$id,$article);}
ThinkPHP5配置redis緩衝