MyBatis之緩存

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"/>
相關文章
相關標籤/搜索