2013/11/22工作隨筆-快取是放在Model層還是放在Controller層
web網站的典型程式碼框架就是MVC架構,Model層負責資料獲取,Controller層負責邏輯控制,View層則負責展示。
一般資料獲取是去mysql中獲取資料
但是這裡有個問題,我們不會每次請求都去mysql中獲取,當併發量大的時候,我們希望mysql前面有層快取做著。
這層快取可能是redis,memcache,File等,但是這個邏輯程式碼是放在Controller中好還是Model中好呢?
放在Controller中:
好處:可以單個Controller進行控制,每個controller中有各自對資料的鍵,以及快取時間等。
不好處:每個controller需要寫一份幾乎一模一樣的程式碼,很繁瑣。即使你寫一個公共的方法,那也要在各個地方寫上這個公共方法,屬於重複工作了。
放在Model中:
好處:統一管理,複用性高,controller層不需要理會資料是從快取中獲取還是從mysql中獲取,controller完全解放出來了。
不好處:沒法對單個controller進行控制了,controller失去了對快取的控制權。
觀點:
我強烈建議放在Model中,因為一般的web是不會controller對快取這層做直接控制的。
相關文章
- Service 層異常拋到 Controller 層處理還是直接處理?Controller
- 網路是七層、五層還是四層?
- Controller層Controller
- Redis不僅僅是快取,還是……Redis快取
- 圖片存放在伺服器還是資料庫裡的解釋?伺服器資料庫
- dao層 和controllerController
- 快取,究竟是淘汰,還是修改?快取
- 介面控制器層(Controller層)設計(網文)Controller
- 軟體開發重點放在重用上是錯誤的 - Grady
- 你管這破玩意叫快取穿透?還是快取擊穿?快取穿透
- Redis快取篇(一)Redis是如何工作的Redis快取
- 究竟先操作快取,還是資料庫?快取資料庫
- java自動生成實體類(帶註釋)和controller層,service層 dao層 xml層JavaControllerXML
- Kafka Network層解析,還是有人把它說清楚了Kafka
- 三星Galaxy Note10+或繼續用挖孔屏,還是放在中間的那種
- 到底是先更新資料庫還是先更新快取?資料庫快取
- 本文雖然不是laravel相關的技術部落格,但是我還是放在了laravel下。與君共勉Laravel
- 02 | 編寫Model層程式碼
- 健康還是工作,這是個問題
- Cloudflare更智慧的分層快取拓撲生成Cloud快取
- 2024/06/22筆記隨筆筆記
- 什麼是redis快取雪崩、快取穿透、快取擊穿Redis快取穿透
- 快取穿透、快取雪崩和快取擊穿是什麼?快取穿透
- 運維人員的三種層次:看看你是背鍋俠,還是閃修俠?運維
- iOS_Model層到底怎麼用?iOS
- 快取架構設計細節二三事--究竟先操作快取,還是資料庫?快取架構資料庫
- 快取和web快取分別是什麼?快取Web
- win10怎麼把軟體放在桌面 win10如何把app圖示放在桌面Win10APP
- [譯] JavaScript 是如何工作的:深入網路層 + 如何優化效能和安全JavaScript優化
- 分散式系統關注點——先寫DB還是「快取」?分散式快取
- 如何將Mac程式放在桌面上?MacC程式
- javascript程式碼放在什麼裡面JavaScript
- 什麼是redis的快取雪崩與快取穿透Redis快取穿透
- 什麼是DNS快取?DNS快取有哪些作用?DNS快取
- 判斷使用的是 x11 還是 wayland
- 漫畫:什麼是HashMap?(底層原理)HashMap
- synchronized底層是怎麼實現的?synchronized
- 什麼是物理層介面?—Vecloud微雲Cloud
- DDD | 05-什麼是倉儲層