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