java实现缓存技术

java实现缓存技术,第1张

session最好少用,一般系统都用session来存储用户信息,session用多了对系统开销不好,缓存也尽量少用,要用的话都用在基本不会改变的数据上,不然会影响系统,如果经常改变的量,用了缓存,如:一个程序在用缓存中的数据,而另一个程序却在修改缓存的数据,那边程序就会出现不符合的数据了,如果回答对你有帮助,请把分给我吧,谢谢

所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例。这样做可以减少系统开销,提高系统效率。

缓存主要可分为二大类:

一、通过文件缓存,顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式;

二、内存缓存,也就是实现一个类中静态Map,对这个Map进行常规的增删查

你这个分数太少了吧,程序到是有,不过给你有点可惜

CacheMgrjava

import javautil;

import cnjavassframeworkcachevoCacheConfModel;

public class CacheMgr {

private static Map cacheMap = new HashMap();

private static Map cacheConfMap = new HashMap();

private CacheMgr(){

}

private static CacheMgr cm = null;

public static CacheMgr getInstance(){

if(cm==null){

cm = new CacheMgr();

Thread t = new ClearCache();

tstart();

}

return cm;

}

/

增加缓存

@param key

@param value

@param ccm 缓存对象

@return

/

public boolean addCache(Object key,Object value,CacheConfModel ccm){

boolean flag = false;

cacheMapput(key, value);

cacheConfMapput(key, ccm);

Systemoutprintln("now addcache=="+cacheMapsize());

return true;

}

/

删除缓存

@param key

@return

/

public boolean removeCache(Object key){

cacheMapremove(key);

cacheConfMapremove(key);

Systemoutprintln("now removeCache=="+cacheMapsize());

return true;

}

/

清除缓存的类

@author wanglj

继承Thread线程类

/

private static class ClearCache extends Thread{

public void run(){

while(true){

Set tempSet = new HashSet();

Set set = cacheConfMapkeySet();

Iterator it = setiterator();

while(ithasNext()){

Object key = itnext();

CacheConfModel ccm = (CacheConfModel)cacheConfMapget(key);

//比较是否需要清除

if(!ccmisForever()){

if((new Date()getTime()-ccmgetBeginTime())>= ccmgetDurableTime()601000){

//可以清除,先记录下来

tempSetadd(key);

}

}

}

//真正清除

Iterator tempIt = tempSetiterator();

while(tempIthasNext()){

Object key = tempItnext();

cacheMapremove(key);

cacheConfMapremove(key);

}

Systemoutprintln("now thread================>"+cacheMapsize());

//休息

try {

Threadsleep(601000L);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

}

}

}

CacheConfModeljava

public class CacheConfModel implements javaioSerializable{

private long beginTime;

private boolean isForever = false;

private int durableTime;

public long getBeginTime() {

return beginTime;

}

public void setBeginTime(long beginTime) {

thisbeginTime = beginTime;

}

public boolean isForever() {

return isForever;

}

public void setForever(boolean isForever) {

thisisForever = isForever;

}

public int getDurableTime() {

return durableTime;

}

public void setDurableTime(int durableTime) {

thisdurableTime = durableTime;

}

}

顺便说一句,缓存的管理不是靠时间久来计算的,是靠最大不活动间隔计算的,你的设计思想有问题

楼主你好,可能是病毒,可以使用腾讯电脑管家进行深度清理,云查杀和第二代自主研发反病毒引擎,管家系统修复引擎和金山云查杀引擎,拥有账号全景防卫系统,尤其针对欺诈及盗号打击方面,有更加出色的表现

步骤

maven需要添加下面代码:

[java] view plaincopy

<dependency>

<groupid>orgspringframework</groupid>

<artifactid>spring-context-support</artifactid> <version>${springversion}</version>

</dependency>

以及

[java] view plaincopy

<dependency>

<groupid>netsfehcache</groupid>

<artifactid>ehcache</artifactid>

<version>${ehcacheversion}</version>

</dependency>

将最新版本放到占位符中: ${springversion} 和 ${ehcacheversion}

步骤二

在应用程序中将以下代码加入contextxml:

[java] view plaincopy

<bean id="cacheManager" class="orgspringframeworkcacheehcacheEhCacheCacheManager" p:cachemanager-ref="ehcache">

<bean id="ehcache" class="orgspringframeworkcacheehcache EhCacheManagerFactoryBean" p:configlocation="classpath:configuration/ehcachexml" p:shared="true"> <cache:annotation-driven></cache:annotation-driven></bean></bean>

步骤三

将ehcachexml添加到类路径

一个基本的ehcachexml入下:

[java] view plaincopy

<ehcache xmlns:xsi=">

步骤一

maven需要添加下面代码:

[java] view plaincopy

<dependency>

<groupid>orgspringframework</groupid>

<artifactid>spring-context-support</artifactid> <version>${springversion}</version>

</dependency>

以及

[java] view plaincopy

<dependency>

<groupid>netsfehcache</groupid>

<artifactid>ehcache</artifactid>

<version>${ehcacheversion}</version>

</dependency>

将最新版本放到占位符中: ${springversion} 和 ${ehcacheversion}

步骤二

在应用程序中将以下代码加入contextxml:

[java] view plaincopy

<bean id="cacheManager" class="orgspringframeworkcacheehcacheEhCacheCacheManager" p:cachemanager-ref="ehcache">

<bean id="ehcache" class="orgspringframeworkcacheehcache EhCacheManagerFactoryBean" p:configlocation="classpath:configuration/ehcachexml" p:shared="true"> <cache:annotation-driven></cache:annotation-driven></bean></bean>

步骤三

将ehcachexml添加到类路径

一个基本的ehcachexml入下:

[java] view plaincopy

<ehcache xmlns:xsi=">

以上就是关于java实现缓存技术全部的内容,包括:java实现缓存技术、java中还有哪些缓存机制技术、使用java实现以个简单的缓存机制等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9514008.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存