缓存专题讲义分享.pptx

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
缓存什么是缓存存储数据的临时地方使用频繁的数据取原始数据的代价太大命中、存储成本获取数据的请求,在缓存池中找到相应数据没有命中,从数据库中取出数据,放入缓存替代策略当缓存没命中,并且缓存池已满,要剔除老的加入新的。应该剔除哪一条,由替代策略决定LFU: 计算缓存对象使用频率,把不常用额剔除LRU: 把最近最少使用的缓存对象剔除几种缓存技术Java缓存框架EhCacheGuava缓存服务器MemcachedRedisEhCache纯Java开源缓存框架功能强大应用持久化缓存事件监听器开启JMX分布式缓存方便整合Mybatis、Hibernate中做数据缓存SpringMVC+myBatis+ehcacheJar包:ehcache-coremybatis-ehcacheslf4j-apislf4j-log4j整合配置 ehcache.xml<?xml version="1.0" encoding="UTF-8"?><ehcache?xmlns:xsi="/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../bin/ehcache.xsd"><diskStore?path="java.io.tmpdir"/><!--?缓存位置可以是自定义的硬盘地址也可以是JVM默认使用的缓存地址--><!--<diskStore?path="d:\cache"/>?--><defaultCache?maxElementsInMemory="10000"?eternal="false"?timeToIdleSeconds="30"?timeToLiveSeconds="30"?overflowToDisk="true"/><!-- 配置自定义缓存?name:Cache的唯一标识maxElementsInMemory:缓存中允许创建的最大对象数?maxElementsOnDisk:磁盘中最大缓存对象数,若是0表示无穷大?eternal:Element是否永久有效,一但设置了,timeout将不起作用,对象永不过期。?timeToIdleSeconds:缓存数据的钝化时间,也就是在一个元素消亡之前,两次访问时间的最大时间间隔值,这只能在元素不是永久驻留时有效,如果该值是?0?就意味着元素可以停顿无穷长的时间。??timeToLiveSeconds:缓存数据的生存时间,也就是一个元素从构建到消亡的最大时间间隔值,这只能在元素不是永久驻留时有效,如果该值是0就意味着元素可以停顿无穷长的时间?overflowToDisk:内存不足时,是否启用磁盘缓存。??diskPersistent:是否缓存虚拟机重启期数据 ?diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒?diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区??memoryStoreEvictionPolicy:缓存满了之后的淘汰算法。默认策略是LRU。你可以设置为FIFO(先进先出)或是LFU??--> <cache?name="testCache" maxElementsInMemory="10000" eternal="true" overflowToDisk="false" timeToIdleSeconds="0" timeToLiveSeconds="600" memoryStoreEvictionPolicy="LFU"?/></ehcache>Mybatis mapper配置<?xml?version="1.0"?encoding="UTF-8"??>?<!DOCTYPE?mapper?PUBLIC?"-////DTD?Mapper?3.0//EN"?"/dtd/mybatis-3-mapper.dtd"><mapper?namespace="com.qiuqiu.dao.PersonDao"> ?<!--?以下两个<cache>标签二选一,第一个可以输出日志,第二个不输出日志? 只要在对应的mapper配置文件中加入<cache?/>标签即可--> ?<cache?type="org.mybatis.caches.ehcache.LoggingEhcache"/> ?<!--?<cache?type="org.mybatis.caches.ehcache.EhcacheCache"/>?-->?<select?id="selectAllUser"?resultType="com.gcj.entity.Person">?select?*?from?person?</s

文档评论(0)

2518887 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档