快取技術,五花八門,有 memcache、redis、squid、varnish、web cache、 cdn等等。快取技術主要分為三個大類:
一:資料庫快取
二:靜態快取
三:動態快取
常見的資料庫,如oracle、mysql等,資料都是存放在磁碟。雖然資料庫層也有對應的快取,但這種快取一般針對的是查詢內容,而且粒度太小,一般只有表中資料沒有變更的時候,資料庫對應的快取才發揮作用。但這並不能減少業務系統對資料庫產生的增、刪、查、改的龐大io壓力。
所以資料庫快取技術在此誕生,實現熱點資料的快取記憶體,提高應用的響應速度,極大緩解後端資料庫的壓力。
效能優越
資料庫快取的第乙個技術特點就是提高效能,所以資料庫快取的資料基本上都是儲存在記憶體中,相比io讀寫的速度,資料訪問快速返回。而且在mysql 5.6之後,已經把memcache這種資料庫快取直接整合進去了,不需要我們自己去單獨部署對應資料庫快取的中介軟體了。
應用場景
針對資料庫的增、刪、查、改,絕大部分的應用場景的還是「查」快取,當然,「增、刪、改」的場景也是有的。
資料一致性
絕大多數應用中,快取中的資料和資料庫中的資料是不一致的。即,我們犧牲了實時性換回了訪問速度。
我們對實時性可以有一定的容忍度的資料,容忍度的時間可以是5分鐘,也可以是5小時,取決於業務場景的要求。
相反,一定要求是實時性的資料庫,就不應該從快取裡讀取
高可用快取為資料庫抵擋了很多壓力,同時也為應用提供了良好的訪問速度。
如果資料庫快取「罷工」,特別在一些高併發的應用中,資料庫層肯定是「消化不良「,最終導致應用全面崩潰。所以快取的高可用顯得非常重要。
memcache和redis兩個中介軟體
有持久化需求或者對資料結構和處理有高階要求的應用,選擇redis(自帶持久化功能)。
其他簡單的key/value儲存,選擇memcache。
所以根據自身業務特性,資料庫快取來選擇適合自己的技術。
2.常見技術
瀏覽器快取、磁碟快取、記憶體快取、nginx的記憶體快取、cdn是在新內容發布以後,並不預先生成相應的靜態頁面,直到對相應內容發出請求時,如果前台快取伺服器找不到相應快取,就向後台內容管理伺服器發出請求,後台系統會生成相應內容的靜態頁面,使用者第一次訪問頁面時可能會慢一點,但是以後就是直接訪問快取了。
相關的其他頁面能自動更新,從而大大減少了設計相關頁面更新觸發器的需要。
Ext常見錯誤集錦
extjs報錯一 event為空或不是物件 大部分情況下是因為多了乙個 引起的,特別是items後面,我所遇到的是重複定義的問題,如下 items new ext.formpanel defaulttype textfield items 最開始時上面定義了defaulttype為 textfiel...
常見sql語句集錦
1.unix timestamp 自 1970 01 01 00 00 00 的到當前時間的秒數差 2.select unix timestamp 2012 06 08 獲取date 日期的時間戳 3.select if unix timestamp 1000 createtime select t...
pycharm常見錯誤集錦
如有錯誤感謝批評指正 v 顯示全部資訊 d 顯示除錯資訊 i 顯示一般資訊 w 顯示警告資訊 e 顯示錯誤資訊 anaconda tensorflow安裝 windows 需要了解的點 1.python執行需要呼叫一定的庫 2.安裝anaconda,pycharm,python,一般會各自自帶pyt...