eaccelerator,xcache,opcache(5.5預設 linux下安裝php時記得加上 --enable-opcache ),apc(偏資料庫快取,分系統和使用者快取,不推薦5.5將棄之?)是php快取擴充套件,
memcached快取是資料庫快取擴充套件(apc比較偏向資料庫快取的),一般兩者只有要安裝其中乙個即可
注意:(詳情連線)
實際測試中發現當cache數量超過一定閥值的時候,apc的效能不如memcache
opcache的效能優於其他幾個快取器
一般會選擇opcache+memcached|redis這個組合
如果儲存的量不大,tp 的file 快取,和redis |memcached差不多。但是記憶體讀取肯定要快。如果儲存的值多,redis |memcached強大的i/o能力會強於 普通的檔案讀寫
php.ini 開啟 zend_extension="d:\phpstudy\php\php-7.2.14\ext\php_opcache.dll"
thinkphp的快取:
1:'tmpl_cache_on' => true, //
是否開啟模板編譯快取,設為false則每次都會重新編譯
'tmpl_cache_time' => 0, //
模板快取有效期 0 為永久,(以數字為值,單位:秒)
2:'db_fields_cache' => true, //
啟用字段快取
3:'data_cache_time' => 0, //
資料快取有效期 0表示永久快取
'data_cache_type' => 'file', //
資料快取型別,支援:file|db|apc|memcache|shmop|sqlite|xcache|apachenote|eaccelerator
靜態檔案快取 和s函式動態資料快取(從資料層面提高)
thinkphp的靜態快取,資料快取,快速快取,查詢快取
詳細用法
//靜態快取配置
'html_cache_on' => true, //
開啟靜態快取
'html_cache_time' => 3600, //
全域性靜態快取有效期(秒)
'html_file_suffix' => '.html', //
設定靜態快取檔案字尾
'html_cache_rules' => array( //
定義靜態快取規則
//靜態規則是用於定義要生成的靜態檔案的名稱
// 對商品進行快取
// 'product:plist' => 'product/plist__',
// 對單個操作進行快取
// 'index:index' => 'index/index',
// 對index控制器的所有操作快取
'index:' => 'index/_',
//對download控制器的所有操作快取
'download:' => 'download/_',
//對product控制器的所有操作快取並設定快取過期時間為7200秒
'product:' => array('product/_', '7200'),
'projectorselect'=>array('/_',86400),
'*'=>array(''),),
啟用靜態檔案後每次都會檢查訪問的url(訪問的url定義了靜態規則)是否生成了靜態檔案則訪問靜態檔案否則訪問view模板檔案在生成
格式:array
('actionname'=>array('靜態規則','靜態快取有效期','附加規則'), //
第一種 定義所有的read操作的靜態規則'read'=>array('',60)
'controllername:'=>array('靜態規則','靜態快取有效期','附加規則'),//
第二種 定義全域性的控制器靜態規則,例如定義所有的user控制器的靜態規則 'user:'=>array('user/_','600')
'controllername:actionname'=>array('靜態規則','靜態快取有效期','附加規則'),//
第三種 定義某個控制器的操作的靜態規則,例如,我們需要定義blog控制器的read操作進行靜態快取 'blog:read'=>array('',0)
'*'=>array('靜態規則','靜態快取有效期','附加規則'),//
第四種 定義全域性的靜態快取規則,這個屬於特殊情況下的使用,任何模組的操作都適用 例如:'*'=>array(''), 表示根據當前的url進行快取。
…更多操作的靜態規則
)
'read'=>array('',60) #定義所有的read操作(方法)的靜態規則 其中, 表示取$_get['id'] 為靜態快取檔名,第二個引數表示快取60秒
'user:'=>array('user/_','600')#
定義所有的user控制器的靜態規則(全域性的控制器靜態規則) 表示當前的操作名稱
'blog:read'=>array('',0)#
定義blog控制器的read操作進行靜態快取
'read'=>array('think,','60', 'md5') #
即md5('think'.$_get['id']. ', '.$_get['name']);
'empty:index'=>array('_',0);#
定義空控制器的靜態規則
'user:index'=>array('user/',0);#
定義空操作的靜態規則
'*'=>array('')#
全域性靜態規則任何控制器和方法都適用
靜態檔案動態生成的方法: 方法
$this->buildhtml('靜態檔案', '靜態路徑','模板檔案');
引數一:靜態檔案,是指生成後的靜態檔名,檔案儲存路徑完整的就是:靜態路徑/靜態檔案。例如靜態檔案設定a/index.那麼儲存的路徑就是項
目路徑/html/a/index.html(預設的靜態路徑在專案路徑的html資料夾下,沒有可以自己建立)
引數二:靜態路徑,上面已經說明了預設的路徑,3.0中可以在入口檔案裡加入引數來更改靜態路徑。
define('html_path', './');(將靜態路徑義為**根目錄)
引數三:模板檔案,我感覺官方這個描述是不正確的,準確的來說應該是目標模組,就是需要生成靜態檔案的模組。格式:模組名:操作。比如要生成index下的a方法為靜態檔案,那就是index:a。如果為空則預設生成當前操作的靜態檔案。
下面三個是等效的??:
$this->buildhtml("index",'',"");
$this->buildhtml("index",'',"index:index");
$this->buildhtml("index",'',"index");
php 加速快取彙總
1 php 預編譯加速器 比較三款免費的php加速器 apc vs eaccelerator vs xcache zendoptimizer不推薦zendoptimizer 和eaccelerator 同時安裝,只需要將so檔案拷貝到php的擴充套件目錄下,增加zend.ini檔案即可 extens...
php常用的加速快取的擴充套件
最近深究了一些有關php常用的加速快取擴充套件以及工具,常被人介紹的有 eaccelerator memcached xcache alternative php cache這幾個快取擴充套件,下面簡單的談一下其中的區別以及我比較喜歡用的 1 eaccelerator eaccelerator是乙個...
如何加速CDN快取?
cdn快取的內容主要是快取html css xml等靜態資源,不快取含有?的動態位址 jsp php,js檔案也不快取 除非特殊設定 以及快取原站返回http狀態為20 或304,不快取其他狀態 例如404,500,503 使用cdn兩大優勢 1.減輕源 的負擔 使用cdn最大的益處,是cdn為你的...