`
wnick
  • 浏览: 62097 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

基于模版方法的简单缓存功功能

    博客分类:
  • Java
阅读更多
简单缓存功能

需要功能:
投票功能要记录当前投票的访问数量,并且每隔一段时间记录到库中(断电、重启服务等造成数据丢失)。

实现功能:
1. 缓存功能
2. 间隔一段时间保存数据到库
3. 当达到容量就清除最不常访问的缓存

说明:
这里还有问卷和其他类是的东西需要缓存,所以这里是模版方法的实现。CacheManager缓存管理的抽象类,是整个缓存功能的主骨架。

介绍:
1. 实线上面是两个类是模版方法的用法。当voteCacheManager实例化会调用startTask(),startTask方法要调用startTaskHandle方法,startTaskHandle是抽象方法需要子类去实现具体的操作。我这里的就是执行保存投票的访问数量到数据库
2. BaseCache基于concurrentHashmap缓存容器.
3. Cache放置缓存对象并增加一个时间戳
4. Vote就是投票对象一个普通javaBean



代码:
实现startTaskHandle方法,实现和自己业务相关的逻辑。
public class VoteCacheManager extends CacheManager<Vote> {

	@Override
	void startTaskHandle() {
		saveVisitCount();
	}

	private VoteCacheManager() {
		this.init();
	}

	/**
	 * 更新缓存内容到数据库
	 * 
	 */
	public void saveVisitCount() {
		//
	}
}

模拟:
VoteCacheManager里面有一个main方法模拟了投票访问过程。附件里有源码,这功能只是简单的测试了一下,能用而已 =。=

结束:
实现的简单功能对初学者还是有点点用,文档写得不好讲究看了


.
分享到:
评论

相关推荐

    Python-djangoviewlet渲染模板同时具有额外的缓存控制功能

    `django-viewlet`是一个扩展Django视图功能的库,它专注于模板渲染,并且提供了一些额外的缓存控制机制,使得开发者可以更有效地管理资源的缓存,从而提高网站性能。 首先,我们要理解Django模板渲染的基本概念。...

    spring简单的缓存

    本示例将聚焦于“Spring简单的缓存”实现,帮助开发者了解如何在Spring框架中集成和使用缓存功能。 Spring框架提供了强大的缓存抽象,支持多种缓存机制,如 EhCache、Redis、Hazelcast 和 Infinispan 等。在Spring...

    Python-一个简单小巧可定制化轻量级的基于内存的Python缓存组件

    标题中的“Python-一个简单小巧可定制化轻量级的基于内存的Python缓存组件”指的是一种Python库,它设计用于实现简单的内存缓存功能。这类组件在处理大量数据或者需要频繁读取已计算结果时特别有用,因为它可以减少...

    Asp.net Core 3.1基于AspectCore实现AOP实现事务、缓存拦截器功能

    最近想给我的框架加一种功能,就是比如给一个方法加一个事务的特性Attribute,那这个方法就会启用事务处理。给一个方法加一个缓存特性,那这个方法就会进行缓存。 这个也是网上说的面向切面编程AOP。 AOP的概念也很...

    基于Spring的Web缓存

    本文将深入探讨如何在基于Spring的Web应用中实现缓存功能,以提升系统的性能和响应速度。 首先,让我们了解什么是缓存。缓存是一种存储技术,用于临时保存常用数据,以便快速访问。在Web应用中,缓存可以减少数据库...

    PHP实现的简单缓存类.zip

    本文将深入探讨使用PHP实现的简单缓存类,并基于标题、描述及提供的压缩包文件名来详细解释相关知识点。 首先,我们要了解什么是缓存。缓存是一种存储系统,用于临时存储频繁访问的数据,以便后续请求可以快速获取...

    C#缓存线程模板

    4. **缓存失效策略**:包括定时过期、基于引用计数、基于LRU/LFU等。过期策略可以防止缓存数据长时间未更新导致的错误。 5. **缓存容量控制**:当缓存大小超过预设限制时,需要决定哪些数据应该被移出。LRU和LFU...

    基于STM32的LVGL V8.2 DMA单缓存刷屏模板及触摸功能实现源码

    该项目是一款基于STM32微控制器的LVGL V8.2图形库DMA单缓存刷屏模板,集成了触摸功能。源码包含861个文件,涵盖366个C源文件、244个头文件、133个Python脚本、51个RST启动文件、20个PNG图片、16个Makefile文件、4个...

    ECSHOP2.7.2 仿京东模板,附带静态压缩缓存功能

    这套模板整合了页面静态缓存+压缩输出功能,但是下载模板后,即使不使用这套模板,经过设置的缓存策略同样会对ECShop当前应用的模板有效。 所以这个功能是可以独立使用的。 下载后,覆盖到EC安装路径下,(EC程序...

    (源码)基于Spring框架的缓存管理系统.zip

    本项目是一个基于Spring框架的缓存管理系统,旨在通过注解驱动的缓存管理功能,提高应用程序的性能和响应速度。项目支持多种缓存操作,包括缓存数据的读取、写入、失效等,并提供了灵活的配置选项,以适应不同的应用...

    使用google guava 实现定时缓存功能

    前者基于缓存项的写入时间,后者基于缓存项的最后一次访问(读取或写入)时间。可以根据需求选择合适的策略。 3. **缓存刷新** Guava还支持定时刷新缓存,即使在缓存项没有达到过期时间也会进行更新。例如,可以...

    finereport缓存问题

    模板结果共享缓存的原理是将报表执行过程中所需的模板结果缓存在服务器的内存或磁盘中,以便于下一次执行时可以快速获取模板结果。例如,在报表执行过程中, FineReport 报表系统会将模板结果缓存在服务器的内存或...

    ArcGIS Server 基于模板的开发

    本主题将深入探讨“ArcGIS Server 基于模板的开发”,这是一种高效且灵活的方法,允许开发者快速构建和定制webGIS应用。 一、ArcGIS Server简介 ArcGIS Server是GIS技术的核心组件,它能够处理、存储、管理和分发...

    (第30讲) PHP模板引擎Smarty缓存应用

    使用Smarty缓存时,只需在模板文件中添加`{cache}`标签,例如`{cache id='uniqueCacheId'}...{/cache}`,其中的`id`用于唯一标识缓存。缓存内容会自动保存,并在下一次请求时直接使用,无需重新生成。清除缓存可以...

    基于redis的缓存框架

    基于Redis的缓存框架是利用Redis的高性能和丰富的数据结构来实现应用程序的缓存功能。本篇文章将深入探讨如何构建一个基于Redis的缓存框架,并与Spring Cache进行对比。 首先,让我们了解一下Redis。Redis(Remote ...

    php模板解析类文件缓存

    在实际应用中,为了充分利用Smarty的缓存功能,我们需要合理设置缓存策略,平衡性能与数据实时性。例如,对于不常变化但计算成本高的内容,我们可以设置较长的缓存时间;而对于频繁更新的信息,可以减少缓存或者不...

Global site tag (gtag.js) - Google Analytics