有兩種類型的二級緩存。
內置緩存:Hibernate自帶,不能卸載。通常在Hibernate的初始化階段,Hibernate會把映射元數據和預定義的SQL語句放到SessionFactory的緩存中。內置緩存是只讀的。
外部緩存:二級緩存也稱為外部緩存。默認情況下,SessionFactory不會啟用此緩存插件。外部緩存中的數據是數據庫數據的副本,外部緩存的物理介質可以是內存或硬盤。
hibernate二級緩存的結構
2.並發訪問策略
事務性的
(交易)
僅適用於托管環境。
提供可重復的讀取事務隔離級別
適用於經常讀取且很少修改的數據。
可以防止臟讀取和不可重復讀取的並發問題。
緩存支持事務,並且在發生異常時可以回滾。
讀寫
(讀寫類型)
提供讀提交事務隔離級別。
適用於非集群環境。
適用於經常讀取且很少修改的數據。
可以防止不良閱讀
更新緩存將鎖定緩存中的數據。
非嚴格讀寫
(不嚴格讀寫)
它適用於很少修改的數據,偶爾允許臟讀(兩個事務同時修改數據的情況很少見)
緩存和數據庫中數據的壹致性無法得到保證。
為緩存數據設置壹個較短的過期時間,以盡可能避免臟讀。
不要鎖定緩存中的數據
只讀
(只讀)
應用永不修改的數據(如引用數據)
在這種模式下,如果數據被更新,就會出現異常。
低事務隔離級別和高並發性能。
它在集群環境中也能很好地工作。
分析:通過上表分析如下。
適於放入二級高速緩存數據
很少修改。
不是很重要的數據,偶爾會出現並發問題。
不適合二級緩存的數據。
經常修改。
財務數據,絕對不存在並發問題。
與其他應用程序數據共享的數據* * *