`
gonglianying
  • 浏览: 197999 次
  • 性别: Icon_minigender_2
  • 来自: xxx
文章分类
社区版块
存档分类
最新评论

Cache缓存

阅读更多
ehcache.xml
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd">  
 
    <diskStore path="java.io.tmpdir"/>  
 
    <cacheManagerEventListenerFactory class="com.bb2c.common.cache.CacheListener"/>
     
    <defaultCache  
            maxElementsInMemory="10000" 
            eternal="false" 
            timeToIdleSeconds="300" 
            timeToLiveSeconds="120" 
            overflowToDisk="true" 
            diskSpoolBufferSizeMB="30" 
            maxElementsOnDisk="10000000" 
            diskPersistent="false" 
            diskExpiryThreadIntervalSeconds="120" 
            memoryStoreEvictionPolicy="LRU" 
            /> 
    <cache name="BB2CParamCache" maxElementsInMemory="10000" eternal="true" 
        overflowToDisk="false" timeToIdleSeconds="0" timeToLiveSeconds="0" 
        memoryStoreEvictionPolicy="LRU" />
       
  </ehcache>
public class BB2CCacheManager {

private static final Cache cache;
static {
CacheManager manager = new CacheManager();
cache = manager.getCache("BB2CParamCache");
}

public static void addCache(String type, List list) {
Element e = new Element(type, list);
cache.put(e);
}

public static List getParamList(String type) {
Element e = cache.get(type);
List list = (List) e.getValue();
return list;
}

}

public class StartupListener extends ContextLoaderListener implements
ServletContextListener {
private static Log log = LogFactory.getLog(StartupListener.class);

public void contextInitialized(ServletContextEvent event) {
ServletContext servletContext = event.getServletContext();
setupContext(servletContext);
}

public static void setupContext(ServletContext context) {
ApplicationContext applicationContext = WebApplicationContextUtils
.getRequiredWebApplicationContext(context);
if (log.isDebugEnabled()) {
log.debug("后台管理系统开始启动,并开始加载参数列表............. [OK]");
}
IParamService paramService = (IParamService) applicationContext
.getBean(Constants.PARAM_BEAN);
List<ParamSetObj> newList = new ArrayList<ParamSetObj>();
String type = null;
try {
// 加载参数列表
List list = paramService.queryParamListForCache();

// 将参数列表分类放入缓存
for (int i = 0; i < list.size(); i++) {
ParamSetObj param = (ParamSetObj) list.get(i);
if (i == 0) {
type = param.getParamType();
}
if (!param.getParamType().equals(type)) {
BB2CCacheManager.addCache(type, newList);
type = param.getParamType();
newList = new ArrayList<ParamSetObj>();
newList.add(param);
} else {
newList.add(param);
}
if(i==list.size()-1){
BB2CCacheManager.addCache(type, newList);
}
}

} catch (Exception e) {
e.printStackTrace();
log.error("加载参数列表错误!....................[fail]");
}
if (log.isDebugEnabled()) {
log.debug("后台管理系统启动完毕,参数列别已近加载完毕............. [OK]");
}
}

}

public class CacheListener extends CacheManagerEventListenerFactory {

public CacheManagerEventListener createCacheManagerEventListener(
Properties properties) {
return new CMEL();
}
}

class CMEL implements CacheManagerEventListener {
public void dispose() throws CacheException {
}

public Status getStatus() {
return null;
}

public void init() throws CacheException {
}

public void notifyCacheAdded(String cacheName) {
System.out.println("Cache [" + cacheName + "] Added");
}

public void notifyCacheRemoved(String cacheName) {
System.out.println("Cache [" + cacheName + "] Deleted");
}

}
分享到:
评论

相关推荐

    ASP.net读Cache缓存简单例子

    在ASP.NET中,Cache缓存是一种重要的性能优化机制,它允许开发者将经常访问的数据存储在内存中,减少对数据库或其他资源的访问,从而提高Web应用程序的响应速度。 **Cache缓存的基本概念** Cache是ASP.NET应用程序...

    springboot 使用spring cache缓存 和 缓存数据落地到redis

    【Spring Boot 使用 Spring Cache 缓存与数据落地到 Redis】\n\n在Spring Boot应用中,Spring Cache是一个强大的工具,可以极大地提升应用的性能,通过缓存非计算性或者昂贵的计算结果。Spring Cache抽象了缓存管理...

    springboot 使用spring cache缓存 和 使用fastjson配置redis系列化

    在Spring Boot应用中,Spring Cache是一个强大的工具,用于在应用程序中实现缓存抽象,它可以减少对数据库或远程服务的重复调用,从而提高性能。在本篇文档中,我们将探讨如何使用Spring Cache来缓存数据,并结合...

    Cache 缓存数据和删除缓存的简单示例

    本文将深入探讨Cache缓存数据的原理和实现方法,以及如何有效地管理并删除缓存,以确保高效且响应迅速的应用服务。 首先,我们需要理解什么是缓存。缓存是一种存储技术,用于临时存储经常访问的数据,以减少对主...

    如何用PageCache缓存技巧加速你的网站

    ### 如何用PageCache缓存技巧加速你的网站 #### 一、引言 随着互联网技术的发展,动态网站逐渐成为主流。然而,动态网站虽然具备更好的交互性和灵活性,但同时也带来了性能上的挑战。为了提高网站的加载速度并减轻...

    SpringCache缓存初探共5页.pdf.zip

    在这个“SpringCache缓存初探共5页.pdf.zip”压缩包中,很可能是对SpringCache的基础知识进行了简要介绍。虽然文件名暗示内容可能只有5页,但我们可以深入探讨SpringCache的一些核心概念和技术细节。 首先,Spring...

    Wordpress mu wp-cache 缓存模块 支持多语 简体中文包

    **Wordpress mu wp-cache缓存模块详解** 在WordPress的多用户环境(WordPress MU,现在称为WPMU或WordPress Multisite)中,性能优化是非常重要的,因为多个网站在同一平台上运行可能会对服务器造成巨大压力。`wp-...

    cache缓存.docx

    **Cache缓存的基本概念** Cache缓存是一种存储技术,它被设计用来缓解计算机系统中处理器(CPU)与主存储器之间速度不匹配的问题。随着CPU技术的快速发展,其运算速度远超主存的读写速度,导致CPU经常等待数据从...

    cache缓存.pdf

    **Cache缓存技术** Cache,又称为高速缓冲存储器,是计算机系统中为了提升处理器(CPU)性能而设计的关键组件。它的主要目的是解决CPU运算速度与主存储器(Memory)速度之间的不匹配问题。随着CPU技术的发展,...

    ARM9指令Cache缓存模块的Verilog代码.rar

    ARM9指令Cache缓存模块是嵌入式系统设计中的关键组成部分,主要负责加速处理器对内存中指令的访问。在现代微处理器中,Cache缓存扮演着提高系统性能的关键角色,通过减少处理器与主内存之间的数据交换时间来提升系统...

    twitter cache缓存架构图.png

    twitter cache缓存架构图.png

    CACHE缓存服务

    **CACHE缓存服务详解** 在IT行业中,CACHE缓存服务是一种高效的数据存储机制,它能够显著提高应用程序的性能,减少对后端数据库的访问压力。本文将深入探讨CACHE缓存服务的概念、工作原理以及在实际应用中的作用,...

    Android WebView cache 缓存 在线 视频播放

    WebSettings提供了setCacheMode()方法来设置缓存模式,比如LOAD_CACHE_ONLY,这样在无网络时,WebView会优先从本地缓存加载内容。 ```java settings.setCacheMode(WebSettings.LOAD_CACHE_ONLY); // 仅使用缓存 ```...

    spring-cache(通过key值更新缓存)

    Spring Cache是一个抽象层,它允许开发者在不关注具体缓存实现的情况下,轻松地在应用程序中添加缓存功能。本篇文章将详细探讨如何通过key值更新Spring Cache中的指定缓存,以及相关的缓存管理策略。 首先,让我们...

    asp.net中Session缓存与Cache缓存的区别分析

    Session缓存与Cache缓存的区别,可以参考如下的几点: 1、最大的区别是Cache提供缓存依赖来更新数据,而Session只能依靠定义的缓存时间来判断缓存数据是否有效。 2、即使应用程序终止,只要Cache.Add方法中定义的...

    Nginx启用proxy_cache缓存的方法

    1. proxy_cache_path: 这是用于定义缓存文件存储路径的关键配置项,其中可以指定缓存根目录、缓存目录层级、共享内存区域、缓存最大空间、缓存文件的临时路径等参数。 - /home/nginx/proxy_cache/cache:设置缓存...

    .NET Core系列之MemoryCache 缓存过期

    .NET Core中的MemoryCache是一种用于在应用程序内存中存储数据的缓存机制,以提高数据访问速度和应用程序性能。MemoryCache属于.NET Core的内置缓存机制之一,广泛应用于各种需要快速数据存取的场景。本篇文章主要...

    浅析SpringCache缓存1

    Spring Cache 是 Spring 框架从 3.1 版本开始引入的一个强大特性,它提供了一种透明化的缓存机制,允许开发者在不修改原有业务代码的基础上,轻松地为应用程序添加缓存功能。这个抽象层使得我们可以使用不同的缓存...

    Cache(数据缓存)

    **Cache(数据缓存)详解** Cache,也称为数据缓存,是一种提高应用程序性能的关键技术。它通过存储经常访问的数据,使得数据的读取速度更快,从而减轻了对底层资源(如数据库或网络)的压力。在本文中,我们将深入...

    Springboot整合GuavaCache缓存过程解析

    SpringBoot整合GuavaCache缓存过程解析 SpringBoot是一款流行的Java框架,提供了许多便捷的功能来简化开发过程。其中,缓存机制是SpringBoot中的一个重要组件,可以帮助提高应用程序的性能和响应速度。GuavaCache是...

Global site tag (gtag.js) - Google Analytics