更新時間:2022-03-29 12:06:35 來源:動力節點 瀏覽2363次
Java緩存技術是什么?很多小伙伴對此還不是很了解,下面就由小編來告訴大家。
(1)Cache是??高速緩存的特殊內存子系統,將常用的數據復制在其中,方便快速訪問。
(2)對于速度差異較大的兩種硬件/軟件,使用協調兩者數據傳輸速度差異的結構,可以稱為Cache.
不同層次的系統架構之間,為了加快訪問速度,可以有緩存
操作系統磁盤緩存 -> 減少磁盤機械操作
數據庫緩存 -> 減少文件系統 I/O
應用程序緩存 -> 減少對數據庫的查詢
Web 服務器緩存 -> 減少應用程序服務器請求
客戶端瀏覽器緩存 -> 減少對網站的訪問
(1)文件系統提供的磁盤緩存:操作系統會將經常訪問的文件內容放入內存,由文件系統管理。
(2)應用程序通過文件系統訪問磁盤文件時,操作系統從Disk Cache中讀取文件內容,加快了文件讀取速度。
(3)Disk Cache由操作系統自動管理,一般不需要人工干預,但要保證足夠的物理內存,讓操作系統盡可能多的使用Disk Cache,加快文件讀取速度
(4)特殊應用對文件系統Disk Cache要求較高。他們會繞過文件系統Disk Cache,直接訪問磁盤分區,自行實現Disk
(5)Cache策略。
Oracle的裸設備(raw device)——直接放棄文件系統
InnoDB for MySQL:innodb_flush_method = O_DIRECT
(1)重要性
數據庫通常是企業應用系統的核心部分
數據庫中存儲的數據量通常非常大
數據庫查詢操作通常非常頻繁,有時也很復雜
以上原因導致數據庫查詢導致非常頻繁的磁盤I/O讀操作,迫使CPU掛機等待,數據庫性能極低
(2)緩存策略
1)查詢緩存
以 SQL 為鍵值緩存查詢結果集
一旦查詢涉及的表記錄被修改,緩存將被自動刪除
設置合適的 Query Cache 將大大提高數據庫性能
Query Cache 盡量不要大,Qquery Cache 太大會浪費內存。
MySQL:query_cache_size=128M
2)數據緩沖區
數據緩沖區是數據庫數據在內存中的容器
數據緩沖區的命中率直接決定了數據庫的性能
數據緩沖區越大越好,越多越好
MySQL InnoDB 緩沖區:innodb_buffer_pool_size = 2G
MySQL 建議將緩沖池擴大到服務器物理內存的 60-80%
(1)對象緩存
由Hibernate等O/R Mapping框架提供,透明訪問,對數據庫查詢結果進行細粒度緩存,無需對業務代碼進行顯式編程,是最省事的緩存策略
當軟件結構按照O/R Mapping框架的要求設計時,對象緩存的使用將大大減少Web系統的數據庫訪問請求
精心設計的數據庫結構和對象緩存的使用可以提供極高的性能。對象緩存適用于OLTP(在線事務處理)應用
(2)查詢緩存
緩存數據庫查詢結果集,類似于數據庫的Query Cache
適用于一些耗時但時效性不高的要求。查詢緩存和對象緩存適用于不同的場景,相輔相成
當查詢結果集中涉及的表記錄被修改時,需要注意清除緩存
(3)頁面緩存功能
頁面緩存技術不僅可以減輕數據庫服務器的壓力,還可以減輕應用服務器的壓力
好的頁面緩存可以大大提高頁面渲染速度
頁面緩存的難點在于如何清理過期緩存
基于代理服務器模式的Web服務器端緩存,如squid/nginx
Web服務器緩存技術用于實現CDN(內容分發網絡)
國內主流門戶大量采用
無需編程,但僅限于新聞發布網站,頁面實時性要求不高
使用AJAX調用時,在瀏覽器端緩存數據庫
只要不離開當前頁面或不刷新當前頁面,就可以直接讀取緩存數據
僅適用于使用AJAX技術的頁面
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習