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:事务缓存。

原文地址:https://www.cnblogs.com/tulingxueyuan/p/14080756.html