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