MyBatis默認的緩存規則:算法
映射語句文件中的全部 select 語句將會被緩存。緩存
映射語句文件中的全部 insert,update 和 delete 語句會刷新緩存。安全
緩存會使用 Least Recently Used(LRU,最近最少使用的)算法來收回。dom
根據時間表(好比 no Flush Interval,沒有刷新間隔), 緩存不會以任什麼時候間順序 來刷新。ide
緩存會存儲列表集合或對象(不管查詢方法返回什麼)的 1024 個引用。線程
緩存會被視爲是 read/write(可讀/可寫)的緩存,意味着對象檢索不是共享的,而 且能夠安全地被調用者修改,而不干擾其餘調用者或線程所作的潛在修改xml
基本配置:
對象
<cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/>
可用的回收策略:it
LRU – 最近最少使用的:移除最長時間不被使用的對象。io
FIFO – 先進先出:按對象進入緩存的順序來移除它們。
SOFT – 軟引用:移除基於垃圾回收器狀態和軟引用規則的對象。
WEAK – 弱引用:更積極地移除基於垃圾收集器狀態和弱引用規則的對象。
使用自定義緩存:
<cache type="com.domain.something.MyCustomCache"/>