請(qǐng)求緩存
請(qǐng)求緩存(V5.0.1
)
5.0.1
以上版本支持請(qǐng)求緩存功能,支持對(duì)請(qǐng)求地址設(shè)置緩存訪問(wèn),并設(shè)置有效期。
版本 | 新增功能 |
---|---|
5.0.11 | 請(qǐng)求緩存支持緩存標(biāo)簽 |
5.0.6 | 全局請(qǐng)求緩存支持排除規(guī)則 |
5.0.4 | 請(qǐng)求緩存支持模塊單獨(dú)開啟 |
5.0.3 | 增加全局請(qǐng)求緩存支持 |
請(qǐng)求緩存僅對(duì)GET請(qǐng)求有效,有兩種方式可以設(shè)置請(qǐng)求緩存:
路由參數(shù)
可以在路由規(guī)則里面定義cache
參數(shù)開啟當(dāng)前路由規(guī)則的請(qǐng)求緩存,例如:
// 定義GET請(qǐng)求路由規(guī)則 并設(shè)置3600秒的緩存
Route::get('new/:id','News/read',['cache'=>3600]);
第二次訪問(wèn)相同的路由地址的時(shí)候,會(huì)自動(dòng)獲取請(qǐng)求緩存的數(shù)據(jù)響應(yīng)輸出,并發(fā)送304
狀態(tài)碼。
默認(rèn)請(qǐng)求緩存的標(biāo)識(shí)為當(dāng)前訪問(wèn)的pathinfo
地址,可以定義請(qǐng)求緩存的標(biāo)識(shí),如下:
// 定義GET請(qǐng)求路由規(guī)則 并設(shè)置3600秒的緩存
Route::get('new/:id','News/read',[
'cache' => [ 'new/:id/:page',3600]
]);
:id
、:page
表示使用當(dāng)前請(qǐng)求的param參數(shù)進(jìn)行動(dòng)態(tài)標(biāo)識(shí)替換,也就是根據(jù)id和page變量進(jìn)行3600秒的請(qǐng)求緩存。
如果cache參數(shù)傳入false,則表示關(guān)閉當(dāng)前路由的請(qǐng)求緩存(即使開啟全局請(qǐng)求緩存)。
V5.0.11+
版本開始,請(qǐng)求緩存設(shè)置支持緩存標(biāo)簽參數(shù)
// 定義GET請(qǐng)求路由規(guī)則 并設(shè)置3600秒的緩存
Route::get('new/:id','News/read',[
'cache' => [ 'new/:id/:page',3600,'news']
]);
動(dòng)態(tài)設(shè)置
可以在app_begin
行為里面動(dòng)態(tài)設(shè)置請(qǐng)求緩存,例如:
Request::instance()->cache('blog/:id',3600);
表示對(duì)blog/:id
定義的動(dòng)態(tài)訪問(wèn)地址進(jìn)行3600秒的請(qǐng)求緩存。
變量支持當(dāng)前的請(qǐng)求變量(也就是param方法的所有變量)。
可以使用當(dāng)前的URL地址作為緩存標(biāo)識(shí),如下:
Request::instance()->cache('__URL__',600);
支持對(duì)某個(gè)URL后綴的請(qǐng)求進(jìn)行緩存,例如:
Request::instance()->cache('[html]',600);
表示對(duì)所有的html
后綴訪問(wèn)(GET)請(qǐng)求進(jìn)行10分鐘的緩存。
V5.0.11+
版本開始支持緩存標(biāo)簽設(shè)置
Request::instance()->cache('blog/:id',600,'blog');
V5.0.3+
版本增加了請(qǐng)求緩存自動(dòng)判斷,只需要在配置文件中開啟:
'request_cache' => true,
'request_cache_expire' => 3600,
就會(huì)自動(dòng)根據(jù)當(dāng)前請(qǐng)求URL地址(只針對(duì)GET請(qǐng)求類型)進(jìn)行請(qǐng)求緩存,全局緩存有效期為3600秒。
V5.0.4+
版本開始可以在模塊配置中單獨(dú)設(shè)置開啟請(qǐng)求緩存。
路由中設(shè)置的請(qǐng)求緩存依然有效并且優(yōu)先。
V5.0.6+
版本開始,全局請(qǐng)求緩存支持設(shè)置排除規(guī)則,使用方法如下:
'request_cache' => true,
'request_cache_expire' => 3600,
'request_cache_except' => [
'/blog/index',
'/user/member'
],
request_cache_except
設(shè)置的規(guī)則為不使用請(qǐng)求緩存的地址(不支持變量)開頭部分。