zoukankan      html  css  js  c++  java
  • java在线学习-mybatis的缓存类及作用

    图灵学院  java在线学习-mybatis的缓存类及作用

    1.缓存的作用

        mybatis缓存的作用就是提升查询的效率和减少数据库的压力。

    java架构师学习路线

        2.mybatis的缓存类

        mybatis缓存相关的类都在cache包里面,有个Cache的接口,默认实现是PerpetualCache类。当然,还有一些其他缓存类,是通过装饰器模式实现的。我们来看下包结构:

        然后看下这些缓存类的作用:

        PerpetualCache:基本缓存类,默认实现。

        LruCache:LRU策略的缓存,作用是当缓存到达上限时候,删除最近最少使用的缓存。

        FifoCache:FIFO策略的缓存,作用是当缓存到达上限时候,删除最先入队的缓存。

        SoftCache:带清理策略的缓存,作用是通过JVM的软引用来实现缓存,当JVM内存不足时,会自动清理掉这些缓存。

        WeakCache:带清理策略的缓存,作用是通过JVM的弱引用来实现缓存,当JVM内存不足时,会自动清理掉这些缓存。

        LoggingCache:带日志功能的缓存。

        SynchronizedCache:同步缓存,基于synchronized关键字实现,作用是解决并发问。

        BlockingCache:阻塞缓存,通过在get/put方式中加锁,保证只有一个线程操作缓存,基于Java重入锁实现

        SerializedCache:支持序列化的缓存,将对象序列化以后存到缓存中,取出时反序列化。

        ScheduledCache:定时调度的缓存,在进行get/put/remove/getSize等操作前,判断缓存时间是否超过了设置的最长缓存时间(默认是一小时),如果是则清空缓存--即每隔一段时间清空一次缓存。这个有点像redis设置的超时时间。

        TransactionalCache:事务缓存。

  • 相关阅读:
    原创 爱因斯坦迷题及推导过程
    惊闻姑姑家女婿去世,哀叹生命之脆弱,死亡如此接近
    京东自营预售逻辑
    自营SKU绑定逻辑
    自营结算解释&对账逻辑
    CPS逻辑
    京东搜索结果数据异常
    C++静态库中使用_declspec(dllexport) 不能导出函数的问题
    HTTP+SVN访问速度慢的问题
    Python log
  • 原文地址:https://www.cnblogs.com/tulingxueyuan/p/14080756.html
Copyright © 2011-2022 走看看