php 快取 加速快取

2022-04-22 09:51:09 字數 3680 閱讀 4074

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為你的...