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