## 请æ±ç¼å
æ¯æ请æ±ç¼ååè½ï¼æ¯æ对GET请æ±è®¾ç½®ç¼å访é®ï¼å¹¶è®¾ç½®æææã
>[danger] 请æ±ç¼åä»
对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`ç§ç请æ±ç¼åã
>[danger] å¦æ`cache`åæ°ä¼ å
¥`false`ï¼å表示å
³éå½åè·¯ç±ç请æ±ç¼åï¼å³ä½¿å¼å¯å
¨å±è¯·æ±ç¼åï¼ã
~~~
// å®ä¹GET请æ±è·¯ç±è§å 并å
³é请æ±ç¼åï¼å³ä½¿å¼å¯äºå
¨å±è¯·æ±ç¼åï¼
Route::get('new/:id','News/read')->cache(false);
~~~
æ¯æç»ä¸ç»è·¯ç±è®¾ç½®ç¼åæ ç¾
~~~
// å®ä¹GET请æ±è·¯ç±è§å 并设置3600ç§çç¼å
Route::get('new/:id','News/read')->cache(
[ 'new/:id/:page', 3600, 'page']
);
~~~
è¿æ ·å¯ä»¥å¨éè¦çæ¶åç»ä¸æ¸
çç¼åæ ç¾ä¸º`page`ç请æ±ç¼åã
## å
¨å±è¯·æ±ç¼å
å¦æéè¦å¼å¯å
¨å±è¯·æ±ç¼åï¼åªéè¦å¨å
¨å±ï¼æè
åºç¨ï¼çä¸é´ä»¶å®ä¹æ件`middleware.php`ä¸å¢å
```
'think\middleware\CheckRequestCache',
```
ç¶ååªéè¦å¨`route.php`é
ç½®æ件ä¸è®¾ç½®å
¨å±ç¼åçæææ¶é´ï¼ç§ï¼ï¼
~~~
'request_cache_expire' => 3600,
~~~
å°±ä¼èªå¨æ ¹æ®å½å请æ±URLå°åï¼åªé对GET请æ±ç±»åï¼è¿è¡è¯·æ±ç¼åï¼å
¨å±ç¼åæææ为3600ç§ã
å¦æéè¦å¯¹å
¨å±ç¼å设置ç¼åè§åï¼å¯ä»¥ç´æ¥è®¾ç½®`request_cache_key`åæ°ï¼ä¾å¦ï¼
~~~
'request_cache_key' => '__URL__',
'request_cache_expire' => 3600,
~~~
ç¼åæ è¯æ¯æä¸é¢çç¹æ®å®ä¹
| æ è¯ | å«ä¹ |
| --- | --- |
| `__CONTROLLER__` | å½åæ§å¶å¨å |
| `__ACTION__` | å½åæä½å |
| `__URL__` | å½åå®æ´URLå°åï¼å
å«ååï¼ |
å
¨å±è¯·æ±ç¼åæ¯æ设置æé¤è§åï¼ä½¿ç¨æ¹æ³å¦ä¸ï¼
~~~
'request_cache_key' => true,
'request_cache_expire' => 3600,
'request_cache_except' => [
'/blog/index',
'/user/member',
],
~~~
æé¤è§å为ä¸ä½¿ç¨è¯·æ±ç¼åçå°åï¼ä¸æ¯æåéï¼å¼å¤´é¨åï¼ä¸åºå大å°åï¼ã
>[info] è·¯ç±ä¸è®¾ç½®ç请æ±ç¼åä¾ç¶ææ并ä¸ä¼å
ï¼å¦æéè¦è®¾ç½®ç¹æ®ç请æ±ç¼åæææå°±å¯ä»¥ç´æ¥å¨è·¯ç±ä¸è®¾ç½®ã
- åºè¨
- åºç¡
- å®è£
- å¼åè§è
- ç®å½ç»æ
- é ç½®
- æ¶æ
- 请æ±æµç¨
- æ¶ææ»è§
- å ¥å£æ件
- å¤åºç¨æ¨¡å¼
- URL访é®
- 容å¨åä¾èµæ³¨å ¥
- æå¡
- é¨é¢
- ä¸é´ä»¶
- äºä»¶
- è·¯ç±
- è·¯ç±å®ä¹
- åéè§å
- è·¯ç±å°å
- è·¯ç±åæ°
- è·¯ç±ä¸é´ä»¶
- è·¯ç±åç»
- èµæºè·¯ç±
- 注解路ç±
- è·¯ç±ç»å®
- ååè·¯ç±
- MISSè·¯ç±
- è·¨å请æ±
- URLçæ
- æ§å¶å¨
- æ§å¶å¨å®ä¹
- åºç¡æ§å¶å¨
- 空æ§å¶å¨
- èµæºæ§å¶å¨
- æ§å¶å¨ä¸é´ä»¶
- 请æ±
- 请æ±å¯¹è±¡
- 请æ±ä¿¡æ¯
- è¾å ¥åé
- 请æ±ç±»å
- HTTP头信æ¯
- 伪éæ
- åæ°ç»å®
- 请æ±ç¼å
- ååº
- ååºè¾åº
- ååºåæ°
- éå®å
- æ件ä¸è½½
- æ°æ®åº
- è¿æ¥æ°æ®åº
- åå¸å¼æ°æ®åº
- æ¥è¯¢æé å¨
- æ¥è¯¢æ°æ®
- æ·»å æ°æ®
- æ´æ°æ°æ®
- å é¤æ°æ®
- æ¥è¯¢è¡¨è¾¾å¼
- é¾å¼æä½
- where
- table
- alias
- field
- strict
- limit
- page
- order
- group
- having
- join
- union
- distinct
- lock
- cache
- comment
- fetchSql
- force
- partition
- failException
- sequence
- replace
- extra
- duplicate
- procedure
- èåæ¥è¯¢
- å页æ¥è¯¢
- æ¶é´æ¥è¯¢
- é«çº§æ¥è¯¢
- è§å¾æ¥è¯¢
- JSONå段
- åæ¥è¯¢
- åçæ¥è¯¢
- æ¥è¯¢äºä»¶
- è·åå¨
- äºå¡æä½
- åå¨è¿ç¨
- æ°æ®é
- æ°æ®åºé©±å¨
- 模å
- å®ä¹
- 模åå段
- æ°å¢
- æ´æ°
- å é¤
- æ¥è¯¢
- æ¥è¯¢èå´
- JSONå段
- è·åå¨
- ä¿®æ¹å¨
- æç´¢å¨
- æ°æ®é
- èªå¨æ¶é´æ³
- åªè¯»å段
- 软å é¤
- ç±»å转æ¢
- 模åè¾åº
- 模åäºä»¶
- 模åå ³è
- ä¸å¯¹ä¸å ³è
- ä¸å¯¹å¤å ³è
- è¿ç¨ä¸å¯¹å¤
- è¿ç¨ä¸å¯¹ä¸
- å¤å¯¹å¤å ³è
- å¤æå ³è
- å ³èé¢è½½å ¥
- å ³èç»è®¡
- å ³èè¾åº
- è§å¾
- 模æ¿åé
- è§å¾è¿æ»¤
- 模æ¿æ¸²æ
- 模æ¿å¼æ
- è§å¾é©±å¨
- é误åæ¥å¿
- å¼å¸¸å¤ç
- æ¥å¿å¤ç
- è°è¯
- è°è¯æ¨¡å¼
- Traceè°è¯
- SQLè°è¯
- åéè°è¯
- è¿ç¨è°è¯
- éªè¯
- éªè¯å¨
- éªè¯è§å
- é误信æ¯
- éªè¯åºæ¯
- è·¯ç±éªè¯
- å ç½®è§å
- 表å令ç
- 注解éªè¯
- æ项
- ç¼å
- Session
- Cookie
- å¤è¯è¨
- ä¸ä¼
- å½ä»¤è¡
- å¯å¨å ç½®æå¡å¨
- æ¥ççæ¬
- èªå¨çæåºç¨ç®å½
- å建类åºæ件
- æ¸ é¤ç¼åæ件
- çææ°æ®è¡¨å段ç¼å
- çæè·¯ç±æ å°ç¼å
- è¾åºè·¯ç±å®ä¹
- èªå®ä¹æ令
- æ©å±åº
- æ°æ®åºè¿ç§»å·¥å ·
- Workerman
- thinkå©æå·¥å ·åº
- éªè¯ç
- Swoole
- éå½
- å©æå½æ°
- å级æ导
- æ´æ°æ¥å¿