並非所有的情況都適合於使用二級緩存,需要根據具體情況來決定。同時可以針對某一個持久化對象配置其具體的緩存策略。
適合於使用二級緩存的情況:
1、數據不會被第三方修改
一般情況下,會被hibernate以外修改的數據最好不要配置二級緩存,以免引起不一致的數據。但是如果此數據因為性能的原因需要被緩存,同時又有可能被第3方比如SQL修改,也可以為其配置二級緩存。只是此時需要在sql執行修改后手動調用cache的清除方法。以保證數據的一致性
2、數據大小在可接收范圍之內
如果數據表數據量特別巨大,此時不適合於二級緩存。原因是緩存的數據量過大可能會引起內存資源緊張,反而降低性能。
如果數據表數據量特別巨大,但是經常使用的往往只是較新的那部分數據。此時,也可為其配置二級緩存。但是必須單獨配置其持久化類的緩存策略,比如最大緩存數、緩存過期時間等,將這些參數降低至一個合理的范圍(太高會引起內存資源緊張,太低了緩存的意義不大)。
3、數據更新頻率低;
對於數據更新頻率過高的數據,頻繁同步緩存中數據的代價可能和 查詢緩存中的數據從中獲得的好處相當,壞處益處相抵消。此時緩存的意義也不大。
4、非關鍵數據(不是財務數據等)
財務數據等是非常重要的數據,絕對不允許出現或使用無效的數據,所以此時為了安全起見最好不要使用二級緩存。
因為此時 “正確性”的重要性遠遠大於 “高性能”的重要性。