Java缓存ehcache的使用步骤

 更新时间:2021年05月10日 10:50:50   作者:彩虹咖啡  
这篇文章主要介绍了Java缓存ehcache的使用步骤,文中有非常详细的代码示例,对正在学习java的小伙伴们有很好的帮助,需要的朋友可以参考下

一、pom.xml

<dependency>
		    <groupId>net.sf.ehcache</groupId>
		    <artifactId>ehcache</artifactId>
		    <version>2.10.4</version>
</dependency>

二、编写ehcache.xml

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">
 
	<cacheManagerPeerProviderFactory
		class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
		properties="peerDiscovery=automatic, multicastGroupAddress=198.1.1.1,
         multicastGroupPort=10001,
         timeToLive=1" />
 
	<cacheManagerPeerListenerFactory
		class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
		properties="port=10001,socketTimeoutMillis=60000" />
 
	<!-- 磁盘缓存位置 -->
	<diskStore path="java.io.tmpdir/anywhere" />
 
	
	<cache name="oneCache" maxElementsInMemory="1500" eternal="false"
		timeToIdleSeconds="900" timeToLiveSeconds="900" overflowToDisk="false"
		memoryStoreEvictionPolicy="LRU">
		<cacheEventListenerFactory
			class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" properties="replicateRemovals=false"/>
		<bootstrapCacheLoaderFactory
			class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory" />
	</cache>
	
</ehcache>

三、参数简介

maxElementsInMemory 缓存中允许创建的最大对象数
eternal 缓存中对象是否为永久的,如果是,超时设置将被忽略,对象从不过期。
timeToIdleSeconds 缓存数据空闲的最大时间,也就是说如果有一个缓存有多久没有被访问就会被销毁,
如果该值是 0 就意味着元素可以停顿无穷长的时间。
timeToLiveSeconds 缓存数据存活的时间,缓存对象最大的的存活时间,超过这个时间就会被销毁,
这只能在元素不是永久驻留时有效,如果该值是0就意味着元素可以停顿无穷长的时间。
overflowToDisk 内存不足时,是否启用磁盘缓存。
memoryStoreEvictionPolicy 缓存满了之后的淘汰算法。
peerDiscovery 方式:atutomatic 为自动 ;manual 手动
mulicastGroupAddress 广播组地址:192.1.1.1
mulicastGroupPort 广播组端口:10001;
timeToLive 是指搜索范围:0是同一台服务器,1是同一个子网,32是指同一站点,64是指同一块地域,128是同一块大陆;
hostName 主机名或者ip,用来接受或者发送信息的接口

四、Ehcache的缓存数据淘汰策略

FIFO:先进先出

LFU:最少被使用,缓存的元素有一个hit属性,hit值最小的将会被清出缓存。

LRU:最近最少使用,缓存的元素有一个时间戳,当缓存容量满了,而又需要腾出地方来缓存新的元素的时候,那么现有缓存元素中时间戳离当前时间最远的元素将被清出缓存

五、编写spring-ehcache.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 
  <description>ehcache</description>
  <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
    <property name="cacheManager" ref="ehcache"/>
  </bean>
  <bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
    <property name="configLocation" value="classpath:/ehcache.xml"/>
  </bean>
</beans>

六、与Spring整合,导入到spring配置文件

<import resource="classpath:/spring-ehcache.xml"/>

七、Java Source code

使用类导入:
    @Resource
    private org.springframework.cache.ehcacheEhCacheCacheManager cacheManager;

从获取cache
    Cache cache = cacheManager.getCache(“oneCache”);
存入cache
    cache.put(“key”, “value”);
从cache中获取
    ValueWrapper val = cache.get(“key”);
    String tempVal = (String)val.get();

到此这篇关于Java缓存ehcache的使用步骤的文章就介绍到这了,更多相关ehcache缓存的使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot+EasyPoi实现excel导出功能

    SpringBoot+EasyPoi实现excel导出功能

    最新小编遇到这样一个需求,根据检索条件查询列表并将结果导出到excel,实现过程也非常简单,感兴趣的朋友跟随小编一起看看吧
    2021-09-09
  • Springboot项目快速实现Aop功能

    Springboot项目快速实现Aop功能

    这篇文章主要介绍了Springboot项目如何快速实现Aop功能,对此方面感兴趣的小伙伴可以详细参考阅读本文,本文有一定的参考价值
    2023-03-03
  • java实现装饰器模式(Decorator Pattern)

    java实现装饰器模式(Decorator Pattern)

    这篇文章主要为大家详细介绍了java实现装饰器模式Decorator Pattern,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • Springmvc ResponseBody响应json数据实现过程

    Springmvc ResponseBody响应json数据实现过程

    这篇文章主要介绍了Springmvc ResponseBody响应json数据实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • spring boot密码加密配置与实例详解

    spring boot密码加密配置与实例详解

    BCrypt是一种专为密码哈希设计的算法,它被广泛认为是安全的选择之一,这篇文章主要介绍了spring boot密码加密配置与实例详解,需要的朋友可以参考下
    2024-12-12
  • java实现登录验证码功能

    java实现登录验证码功能

    这篇文章主要为大家详细介绍了java实现登录验证码功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • 一文带你搞懂Java中Synchronized和Lock的原理与使用

    一文带你搞懂Java中Synchronized和Lock的原理与使用

    这篇文章主要为大家详细介绍了Java中Synchronized和Lock的原理与使用,文中的示例代码讲解详细,对我们学习Java有一定的帮助,需要的可以参考一下
    2023-04-04
  • Java使用正则表达式判断独立字符的存在(代码示例)

    Java使用正则表达式判断独立字符的存在(代码示例)

    通过使用正则表达式,我们可以更加灵活地判断字符串中是否包含特定的字符,并且可以控制匹配的条件,如独立的字符,这为我们处理字符串提供了更多的选择和功能,这篇文章主要介绍了Java使用正则表达式判断独立字符的存在,需要的朋友可以参考下
    2023-10-10
  • MyBatis中的占位符入参全面详解

    MyBatis中的占位符入参全面详解

    这篇文章主要为大家介绍了MyBatis中的占位符全面详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • spring框架下websocket的搭建

    spring框架下websocket的搭建

    本篇文章主要介绍了spring框架下websocket的搭建,非常具有实用价值,需要的朋友可以参考下。
    2017-03-03

最新评论