MyBatis-----9、MyBatis整合第三方缓存EHCache

按照缓存的用途将缓存分为两种,一种是本地缓存;一种是分布式缓存。
  本地缓存指的是程序级别的缓存组件,它的特点是本地缓存和应用程序会运行在同一个进程中,所以本地缓存的操作会非常快,因为在同一个进程内也意味着不会有网络上的延迟和开销。本地缓存适用于单节点非集群的应用场景,它的优点是快,缺点是多程序无法共享缓存。
  分布式缓存将应用系统和缓存组件进行分离的缓存机制,这样多个应用系统就可以共享一套缓存数据了,它的特点是共享缓存服务和可集群部署,为缓存系统提供了高可用的运行环境,以及缓存共享的程序运行机制。
  缓存的实现技术:
  本地缓存的实现技术由 EhCache 和 Google 的 Guava 来实现。他们的特点如下:
  EhCache 是目前比较流行的开源缓存框架,是用纯 Java 语言实现的简单、快速的 Cache 组件。EhCache 支持内存缓存和磁盘缓存。
  Guava Cache 是 Google 开源的 Guava 里的一个子功能,它是一个内存型的本地缓存实现方案,提供了线程安全的缓存操作机制。Guava Cache 类似于 Map 集合的方式对键值对进行操作,只不过多了过期淘汰等处理逻辑。
  分布式缓存可以使用 Redis 或 Memcached 来实现。那么他们之间又有什么区别?
  Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。
  memcached没有原生的集群模式,需要依靠客户端来实现往集群中分片写入数据;但是redis目前是原生支持cluster模式的,redis官方就是支持redis cluster集群模式的,比memcached来说要更好。
   redis是目前比较常用的缓存实现方式之一,因为redis在高效缓存的同时还支持持久化

MyBatis整合第三方缓存EHCache

1、pom.xml配置文件中添加依赖


        <dependency>
            <groupId>org.mybatis.cachesgroupId>
            <artifactId>mybatis-ehcacheartifactId>
            <version>1.2.1version>
        dependency>
        
        <dependency>
            <groupId>ch.qos.logbackgroupId>
            <artifactId>logback-classicartifactId>
            <version>1.2.3version>
        dependency>

MyBatis-----9、MyBatis整合第三方缓存EHCache_第1张图片
2、创建EHCache的配置文件ehcache.xml


<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">
    
    <diskStore path="D:\atguigu\ehcache"/>
    <defaultCache
            maxElementsInMemory="1000"
            maxElementsOnDisk="10000000"
            eternal="false"
            overflowToDisk="true"
            timeToIdleSeconds="120"
            timeToLiveSeconds="120"
            diskExpiryThreadIntervalSeconds="120"
            memoryStoreEvictionPolicy="LRU">
    defaultCache>
ehcache>

encache配置文件中的对应配置说明如下:
配置的属性---------------------是否必须配置-------功能
MyBatis-----9、MyBatis整合第三方缓存EHCache_第2张图片
3、设置二级缓存的类型
MyBatis-----9、MyBatis整合第三方缓存EHCache_第3张图片
通过cache标签中的type属性声明所使用的二级缓存的类型(若不声明则默认使用mybatis的二级缓存)

4、加入logback日志
存在SLF4J时,作为简易日志的log4j将失效,此时我们需要借助SLF4J的具体实现logback来打印日志。
创建logback的配置文件logback.xml


<configuration debug="true">

<appender name="STDOUT"
class="ch.qos.logback.core.ConsoleAppender">
<encoder>

<!-- 按照顺序分别是:时间、日志级别、线程名称、打印日志的类、日志主体内容、换行 -
->
<pattern>[%d{HH:mm:ss.SSS}] [%-5level] [%thread] [%logger]
[%msg]%npattern>
encoder>
appender>


<root level="DEBUG">

<appender-ref ref="STDOUT" />
root>

<logger name="com.atguigu.crowd.mapper" level="DEBUG"/>
configuration>

你可能感兴趣的:(MyBatis,缓存,mybatis,redis)