日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

干货|java缓存技术详解

發(fā)布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 干货|java缓存技术详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、緩存是什么? 請點擊此處輸入圖片描述 Cache ①高速緩沖存儲器,其中復制了頻繁使用的數(shù)據(jù)以利于快速訪問。 ②位于速度相差較大的兩種硬件/軟件之間,用于協(xié)調(diào)兩者數(shù)據(jù)傳輸速度差異的結構 二、緩存有哪幾類? 1、基于web應用的系統(tǒng)架構圖 請點擊此處輸入圖片描述 2、在系統(tǒng)架構中,不同層級之間為了加快訪問速度,緩存都可以存在。 操作系統(tǒng)磁盤緩存->減少磁盤機械操作數(shù)據(jù)庫緩存->減少文件系統(tǒng)I/O應用程序緩存->減少對數(shù)據(jù)庫的查詢Web服務器緩存->減少應用服務器請求客戶端瀏覽器緩存->減少對網(wǎng)站的訪問 三、操作系統(tǒng)緩存 1、文件系統(tǒng)提供的Disk Cache:經(jīng)常訪問到的文件內(nèi)容會通過操作系統(tǒng)放入到內(nèi)存當中,由文件系統(tǒng)來管理 2、當應用程序通過文件系統(tǒng)訪問磁盤文件的時候,操作系統(tǒng)從Disk Cache當中讀取文件內(nèi)容,加速了文件讀取速度 3、Disk Cache由操作系統(tǒng)來自動管理,一般不用人工干預,但應當保證物理內(nèi)存充足,以便于操作系統(tǒng)可以使用盡量多的內(nèi)存充當Disk Cache,加速文件讀取速度 4、特殊的應用程序?qū)ξ募到y(tǒng)Disk Cache有很高的要求,會繞開文件系統(tǒng)Disk Cache,直接訪問磁盤分區(qū),自己實現(xiàn)Disk 5、Cache策略 Oracle的raw device(裸設備) – 直接拋棄文件系統(tǒng)MySQL的InnoDB: innodb_flush_method = O_DIRECT 四、數(shù)據(jù)庫緩存 1、重要性 數(shù)據(jù)庫通常是企業(yè)應用系統(tǒng)最核心的部分數(shù)據(jù)庫保存的數(shù)據(jù)量通常非常龐大數(shù)據(jù)庫查詢操作通常很頻繁,有時還很復雜以上原因造成數(shù)據(jù)庫查詢會引起非常頻繁的磁盤I/O讀取操作,迫使CPU掛起等待,數(shù)據(jù)庫性能極度低下 2、緩存策略 a、Query Cache 以SQL作為key值緩存查詢結果集一旦查詢涉及的表記錄被修改,緩存就會被自動刪除設置合適的Query Cache會極大提高數(shù)據(jù)庫性能Query Cache并非越大越好,過大的Qquery Cache會浪費內(nèi)存MySQL: query_cache_size= 128M b、Data Buffer data buffer是數(shù)據(jù)庫數(shù)據(jù)在內(nèi)存中的容器data buffer的命中率直接決定了數(shù)據(jù)庫的性能data buffer越大越好,多多益善MySQL的InnoDB buffer:innodb_buffer_pool_size = 2GMySQL建議buffer pool開大到服務器物理內(nèi)存60-80% 五、應用程序緩存 1、對象緩存 由O/R Mapping框架例如Hibernate提供,透明性訪問,細顆粒度緩存數(shù)據(jù)庫查詢結果,無需業(yè)務代碼顯式編程,是最省事的緩存策略當軟件結構按照O/R Mapping框架的要求進行針對性設計,使用對象緩存將會極大降低Web系統(tǒng)對于數(shù)據(jù)庫的訪問請求良好的設計數(shù)據(jù)庫結構和利用對象緩存,能夠提供極高的性能,對象緩存適合OLTP(聯(lián)機事務處理)應用 2、查詢緩存 對數(shù)據(jù)庫查詢結果集進行緩存,類似數(shù)據(jù)庫的Query Cache適用于一些耗時,但是時效性要求比較低的場景。查詢緩存和對象緩存適用的場景不一樣,是互為補充的當查詢結果集涉及的表記錄被修改以后,需要注意清理緩存 3、頁面緩存 a、作用 針對頁面的緩存技術不但可以減輕數(shù)據(jù)庫服務器壓力,還可以減輕應用服務器壓力好的頁面緩存可以極大提高頁面渲染速度頁面緩存的難點在于如何清理過期的緩存 b、分類 I、動態(tài)頁面靜態(tài)化 利用模板技術將訪問過一次的動態(tài)頁面生成靜態(tài)html,同時修改頁面鏈接,下一次請求直接訪問靜態(tài)鏈接頁面動態(tài)頁面靜態(tài)化技術的廣泛應用于互聯(lián)網(wǎng)CMS/新聞類Web應用,但也有BBS應用使用該技術,例如Discuz!無法進行權限驗證,無法顯示個性化信息可以使用AJAX請求彌補動態(tài)頁面靜態(tài)化的某些缺點 II、Servlet緩存 針對URL訪問返回的頁面結果進行緩存,適用于粗粒度的頁面緩存,例如新聞發(fā)布可以進行權限的檢查OScache提供了簡單的Servlet緩存(通過web.xml中的配置)也可以自己編程實現(xiàn)Servlet緩存 III、頁面內(nèi)部緩存 針對動態(tài)頁面的局部片斷內(nèi)容進行緩存,適用于一些個性化但不經(jīng)常更新的頁面(例如博客)OSCache提供了簡單的頁面緩存可以自行擴展JSP Tag實現(xiàn)頁面局部緩存 六、web服務器端緩存 基于代理服務器模式的Web服務器端緩存,如squid/nginxWeb服務器緩存技術被用來實現(xiàn)CDN(內(nèi)容分發(fā)網(wǎng)絡 content delivery network)被國內(nèi)主流門戶網(wǎng)站大量采用不需要編程,但僅限于新聞發(fā)布類網(wǎng)站,頁面實時性要求不高 七、基于ajax的瀏覽器緩存 使用AJAX調(diào)用的時候,將數(shù)據(jù)庫在瀏覽器端緩存只要不離開當前頁面,不刷新當前頁面,就可以直接讀取緩存數(shù)據(jù)只適用于使用AJAX技術的頁面

?

轉(zhuǎn)載于:https://www.cnblogs.com/FrankLei/p/6799359.html

總結

以上是生活随笔為你收集整理的干货|java缓存技术详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。