mybatis二級緩存的應用場景和侷限性

mybatis二級緩存的應用場景

  1. 對於訪問多的,實時性要求不高的查詢請求,可以採用mybatis二級緩存技術。
  2. 對於查詢特別耗時的sql請求,且實時性要求不高(如查詢前24小時或前一個月的消費統計)
    二級緩存如何應用:
    通過設置緩存刷新間隔時間flushInterval,由mybatis每隔一段時間自動清空緩存,可以根據數據變化頻率設置刷新間隔,比如設置爲30分鐘、60分鐘、24小時等,根據需求而定。

mybatis二級緩存的侷限性

細粒度緩存就是,針對某個商品,如果要修改其信息,只修改該商品的緩存數據,緩存區的其他數據不動(不會因爲某個商品信息的修改就直接清空整個緩存區)

mybatis二級緩存對細粒度級別的緩存實現不好,比如如下需求:
對商品信息進行緩存, 由於商品信息查詢訪問量大,但是要求用戶每次都能查詢到最新的商品信息,此時如果使用mybatis的二級緩存,就無法實現當一個商品信息變化時,只刷新該商品的緩存信息,而不刷新其它商品的信息。這是因爲mybatis的二級緩存區域以mapper爲單位進行劃分,當一個商品信息變化時(使用這個mapper的任意一個sqlSession執行commt操作),會將所有商品信息的緩存數據全部清空。解決此問題,需要在業務層根據需求對數據進行針對性的緩存(三級緩存)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章