ehcache与spring相结合超时自动刷新缓存的框架搭建.docxVIP

ehcache与spring相结合超时自动刷新缓存的框架搭建.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ehcache与spring相结合超时自动刷新缓存的框架搭建

ehcache 与spring相结合超时自动刷新缓存的框架搭建 2011-02-28 12:39 651人阅读 评论(0) 收藏举报我们在做J2EE工程中经常会碰到一些常量或者是一些不太用的数据。?这部分数据我们希望是把它放到一个共同的地方,然后大家都能去调用,而不用频繁调用数据库以提高web访问的效率。?这样的东西就是缓存(cache),对于缓存的正确理解是一块不太变动的数据,但是这块数据偶尔或者周期新会被变动的,如:?地区,分公司,省市。。。。。。?当系统一开始运行时,我们可以把一批静态的数据放入cache,当数据变化时,我们要从数据库把最新的数据拿出来刷新这块cache。?我们以前的作法是做一个static 的静态变量,把这样的数据放进去,然后用一个schedule job定期去刷新它,然后在用户访问时先找内存,如果内存里没有找到再找数据库,找到数据库中的数据后把新的数据放入 cache。?这带来了比较繁琐的编码工作,伴随而来的代码维护和性能问题也是很受影响的。?因此在此我们引入了ehcache组件。?目前市面上比较流行的是oscache与ehcache,本人这一阵对两种cache各作了一些POC,作了一些比较,包括在cluster环境下的试用,觉得在效率和性能上两者差不多。?但是在配置和功能上ehcache明显有优势。?特别是spring2后续版本引入了对ehcache的集成后,更是使得编程者在利用缓存的问题上大为受益,我写这篇文章的目的就是为了使用SPRING AOP的功能,把调用维护ehcache的API函数封装入框架中,使得ehcache的维护对于开发人员来说保持透明。??Ehcache的配置件(ehcache.xml):?ehcache xmlns:xsi=/2001/XMLSchema-instance xsi:noNamespaceSchemaLocation=../config/ehcache.xsd??? diskStore path=/tmp/?????? ??? defaultCache??????????? maxElementsInMemory=500??????????? eternal=false??????????? timeToIdleSeconds=0??????????? timeToLiveSeconds=60??????????? overflowToDisk=false??????????? maxElementsOnDisk=0??????????? diskPersistent=false??????????? diskExpiryThreadIntervalSeconds=0?????? ?????memoryStoreEvictionPolicy=LRU??????????? /??? cache name=countryCache??????????? maxElementsInMemory=10000??????????? eternal=false??????????? timeToIdleSeconds=0??????????? timeToLiveSeconds=60??????????? overflowToDisk=false??????????? maxElementsOnDisk=0??????????? diskPersistent=false??????????? diskExpiryThreadIntervalSeconds=0??????????? memoryStoreEvictionPolicy=LRU??? /cache??? /ehcache?1.必须要有的属性:?name: cache的名字,用来识别不同的cache,必须惟一。?maxElementsInMemory: 内存管理的缓存元素数量最大限值。?maxElementsOnDisk: 硬盘管理的缓存元素数量最大限值。默认值为0,就是没有限制。?eternal: 设定元素是否持久话。若设为true,则缓存元素不会过期。?overflowToDisk: 设定是否在内存填满的时候把数据转到磁盘上。?2.下面是一些可选属性:?timeToIdleSeconds:设定元素在过期前空闲状态的时间,只对非持久性缓存对象有效。默认值为0,值为0意味着元素可以闲置至无限长时间。?timeToLiveSeconds: 设定元素从创建到过期的时间。其他与timeToIdleSeconds类似。?diskPersistent: 设定在虚拟机重启时是否进行磁盘存储,默认为false.(我的直觉,对于安全小型应用,宜设为true)。?diskExpiryThreadIntervalSeconds: 访问磁

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档