1、為什麼需要快取?
拉高程式的效能
關係型資料庫:資料與資料之間存在關係(聯絡)的資料庫 mysql/oracle、sqlserver
非關係型資料庫:資料與資料之間是不存在關係的,key-value
1、基於檔案儲存的資料庫:ehcache
2、基於記憶體儲存的資料庫:redis、memcache
3、基於文件儲存的資料庫:mongodb
2、 什麼樣的資料需要快取?
很少被修改或根本不改的資料
業務場景比如:耗時較高的統計分析sql、**賬單查詢sql等
ehcache的特點:
1、夠快
ehcache的發行有一段時長了,經過幾年的努力和不計其數的效能測試,ehcache終被設計於large, high concurrency systems.
2、夠簡單
開發者提供的介面非常簡單明瞭,從ehcache的搭建到運用執行僅僅需要的是你寶貴的幾分鐘。其實很多開發者都不知道自己用在用ehcache,ehcache被廣泛的運用於其他的開源專案
3、夠袖珍
關於這點的特性,官方給了乙個很可愛的名字small foot print ,一般ehcache的發布版本不會到2m,v 2.2.3 才 668kb。
4、夠輕量
核心程式僅僅依賴slf4j這乙個包,沒有之一!
5、好擴充套件
ehcache提供了對大資料的記憶體和硬碟的儲存,最近版本允許多例項、儲存物件高靈活性、提供lru、lfu、fifo淘汰演算法,基礎屬性支援熱配置、支援的外掛程式多
6、***
快取管理器*** (cachemanagerlistener)和 快取***(cacheevenlistener),做一些統計或資料一致性廣播挺好用的
7、分布式快取
從ehcache 1.2開始,支援高效能的分布式快取,兼具靈活性和擴充套件性
ehcache的使用
2、核心介面
cachemanager:快取管理器
cache:快取物件,快取管理器內可以放置若干cache,存放資料的實質,所有cache都實現了ehcache介面
element:單條快取資料的組成單位
hibernate(5.2.12.final)中使用二級快取步驟(ehcache)
1、匯入ehcache相關依賴
2、src新增ehcache.xml
3、hibernate.cfg.xml中新增二級快取相關配置
注1:查全部需要編寫**來開啟二級快取的
query.setcacheregion(「entity.dict」);//指定快取策略,名字必須實體類的完整類名
query.setcacheable(true);//手動開啟二級快取
抽象的日誌系統
1、匯入相關依賴
org.slf4j
slf4j-api
1.7.7
org.slf4j
jcl-over-slf4j
1.7.7
runtime
org.apache.logging.log4j
log4j-slf4j-impl
2.9.1
org.apache.logging.log4j
log4j-api
2.9.1
org.apache.logging.log4j
log4j-core
2.9.1
web工程需要包含log4j-web,非web工程不需要:
org.apache.logging.log4j
log4j-web
2.9.1
runtime
com.lmax
disruptor
3.2.0
2、src新增log4j2.xml
Hiberante 九 二級快取 自己加入快取
使用二級快取的步驟 1 hibernate並沒有提供相應的二級快取的元件,所以需要加入額外的二級快取包,常用的二級快取包是echcache 2 在hibernate.cfg.xml中配置開啟二級快取 true net.sf.ehcache.hibernate.ehcacheprovider org....
hibernate二級快取
cacheconcurrencystrategy.none cacheconcurrencystrategy.read only 唯讀模式,在此模式下,如果對資料進行更新操作,會有異常 cacheconcurrencystrategy.read write 讀寫模式在更新快取的時候會把快取裡面的資料...
hibernate 二級快取
session快取 一級快取 sql查詢結果快取,由hibernate管理 sessionfactory內建快取,內建快取是hibernate自帶的,用於存放預定義的sql以及hbm.xml描述的元資料,不可解除安裝 sessionfactory外接快取 二級快取 由外部外掛程式提供,外接快取的資料...