导航:首页 > 编程语言 > java本地缓存实现

java本地缓存实现

发布时间:2021-02-27 01:12:10

『壹』 java 本地数据存储问题

这好办啊

写一个类实现序列化(序列化可以在IO流中传输 即implements Serializable )

加上map属性用来存你要的数据

写一些获得map中的数据方法

我写一个存取数据的方法:

importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.ObjectInputStream;
importjava.io.ObjectOutputStream;
importjava.io.Serializable;

publicclassTestAa{
publicstaticvoidmain(String[]args)throwsException{
//存数据:
TestObjecta=newTestObject();
a.setAa("随便存一个值");
Filefile=newFile("D:\data.dat");
ObjectOutputStreamout=newObjectOutputStream(newFileOutputStream(file));
out.writeObject(a);

//取数据:
ObjectInputStreamin=newObjectInputStream(newFileInputStream(file));
TestObjectb=(TestObject)in.readObject();
System.out.println(b.getAa());
}
}
{
privateStringaa;

publicStringgetAa(){
returnaa;
}

publicvoidsetAa(Stringaa){
this.aa=aa;
}

}

『贰』 ehcache java 对象缓存怎么实现

Java EE和应用缓存
为普通缓存场景和模式提供高质量的实现。
阻塞缓存:它的机制避免了复制进程并发操作的问题。
SelfPopulatingCache在缓存一些开销昂贵操作时显得特别有用,它是一种针对读优化的缓存。它不需要调用者知道缓存元素怎样被返回,也支持在不阻塞读的情况下刷新缓存条目。
CachingFilter:一个抽象、可扩展的cache filter。
SimplePageCachingFilter:用于缓存基于request URI和Query String的页面。它可以根据HTTP request header的值来选择采用或者不采用gzip压缩方式将页面发到浏览器端。你可以用它来缓存整个Servlet页面,无论你采用的是jsP、velocity,或者其他的页面渲染技术。
:缓存页面片段,基于request URI和Query String。在JSP中使用jsp:include标签包含。
已经使用Orion和Tomcat测试过,兼容Servlet 2.3、Servlet 2.4规范。
Cacheable命令:这是一种老的命令行模式,支持异步行为、容错。
兼容Hibernate,兼容Google App Engine。
基于JTA的事务支持,支持事务资源管理,二阶段提交和回滚,以及本地事务。

『叁』 问一个java并发方面的问题,java线程中的本地内存(缓存,高速缓存,寄存器等)是批量刷新的吗

你的4个变量一旦声明会自动在内存中创建。
jvm也没有你说的缓存,高速缓存这些东西,全部放在堆内存中。

堆内存中的东西在GC的时候会移动

『肆』 java 缓存 同步

有以下抄几种方式可以实现:
1. 使用共享缓存:memcached 或者 redis。缓存共享,不存在不同步问题!
2. 应用观察者设计模式。当其中一台服务器更新缓存时,通知其他服务器更新缓存。不过需要一个中介者服务器作为服务器转发请求,通知所有其他服务器端,就像QQ:客户端——服务器——客户端。
3. 应用责任链设计模式。首先,让每一台服务器彼此相连接,形成一个责任链,并让首尾节点相连,即:形成一个环。当一台服务器接收到请求时,首先检查本地缓存,如果存在则返回,否则,对本服务器的下一个节点服务器进行查找,如果找到则将其信息复制到本服务器中并返回。如此进行下去,直到满足一下两个条件之一: 查找到相匹配的内容,或者已经遍历整个环没有找到。

结论:第一种方式存储的数据量少,无冗余,易操作,效率较高;第二、三种方式每台服务器都存储了相同的内容,容易造成数据脏读或脏写,而且执行效率比较低。

以上希望对你有帮助!

『伍』 java缓存是什么意思 文件放在哪

Java的缓存机制是通过JVM(Java虚拟机)提供的运行时缓存来实现的,由于JVM是不跨平台的版(Java的跨平台正是通权过JVM的不跨平台来实现的),所以JVM的缓存机制没有实现本地临时存储,因此你找不到所谓Java的缓存文件夹。这些问题你不用这么纠结,实在不清楚的话打电话问一下官方人员就清楚了。

『陆』 java怎样将数据保存到缓存中,之后再保存

Java中可以使用队列来保存数据,当使用的时候,加上锁,防止其他进程访问,当不用的时候保存到数据库里面,示例如下:

packagecom.henry;
importjava.util.HashMap;
importjava.util.Map;
importjava.util.Random;
importjava.util.concurrent.locks.ReadWriteLock;
importjava.util.concurrent.locks.ReentrantReadWriteLock;

publicclassCacheDataTest{
staticMap<Integer,Object>dataMap=newHashMap<Integer,Object>();
staticReadWriteLocklock=newReentrantReadWriteLock();//创建读写锁的实例
staticObjectgetData(Integerkey){
lock.readLock().lock();//读取前先上锁
Objectval=null;
try{
val=dataMap.get(key);
if(val==null){
//
lock.readLock().unlock();
lock.writeLock().lock();
try{
//可能已经由其他线程写入数据
if(val==null){
//dataMap.put(key,"");//queryfromdb
val=queryDataFromDB(key);
}
}finally{
//
lock.readLock().lock();
//Unlockwrite,stillholdread
lock.writeLock().unlock();
}
}
}finally{
lock.readLock().unlock();//最后一定不要忘记释放锁
}
System.out.println("getdatakey="+key+">val="+val);
returnval;
}

staticObjectqueryDataFromDB(Integerkey){
Objectval=newRandom().nextInt(1000);
dataMap.put(key,val);
System.out.println("writeintodatakey="+key+">val="+val);
returnval;
}

publicstaticvoidmain(String[]args){
for(inti=0;i<10;i++){
newThread(newRunnable(){publicvoidrun(){
getData(newRandom().nextInt(5));
}}).start();
}
}
}

『柒』 java有哪些本地存储数据的方式

写本地文件 、本地数据库、…………

~

『捌』 转载 如何安全的更新java本地缓存

java安全的更新本地缓存的方式如下:

当外部请求访问缓存数据时:如果缓存已经过期(当前时间-缓存的上次更新时间超过缓存的有效期),则重新调用webservice访问服务端查询数据,然后更新缓存。如果缓存未过期,但缓存为空,则重新调用webservice访问服务端查询数据,然后更新缓存。

/**本地缓存*/
privateList<InterfaceConfig>configs=null;
/**本地缓存的上次更新时间*/
privatelonglastUpdateTime=0;
publicList<InterfaceConfig>queryInterfaceList(){
longcurrentTime=System.currentTimeMillis();
//判断本次缓存是否过期,过期则重新调用webservice查询数据,并更新缓存
if(currentTime-lastUpdateTime>60000){

InterfaceManageResultresult=interfaceManageFacade.queryAllInterfaceList();
if(null!=result&&result.isSuccess()){
configs=result.getInterfaceConfigList();
}
lastUpdateTime=currentTime;
}
if(!CollectionUtils.isEmpty(configs)){
returnconfigs;
}

//本地缓存为空,则重新调用webservice查询数据,并更新缓存
InterfaceManageResultresult=interfaceManageFacade.queryAllInterfaceList();
if(null==result||!result.isSuccess()){
returnnull;
}
configs=result.getInterfaceConfigList();
returnconfigs;
}

『玖』 如何安全的更新java本地缓存

java安全的更新本地缓存的方式如下:当外部请求访问缓存数据时:如果缓存已经过期(当前时间-缓存的上次更新时间超过缓存的有效期),则重新调用webservice访问服务端查询数据,然后更新缓存。如果缓存未过期,但缓存为空,则重新调用webservice访问服务端查询数据,然后更新缓存。<pre t="code" l="java">/** 本地缓存 */
private List<InterfaceConfig> configs = null;
/** 本地缓存的上次更新时间 */
private long lastUpdateTime = 0;
public List<InterfaceConfig> queryInterfaceList() {
long currentTime = System.currentTimeMillis();
//判断本次缓存是否过期,过期则重新调用webservice查询数据,并更新缓存
if (currentTime - lastUpdateTime > 60000) {

InterfaceManageResult result = interfaceManageFacade.queryAllInterfaceList();
if (null != result result.isSuccess()) {
configs = result.getInterfaceConfigList();
}
lastUpdateTime = currentTime;
}
if (!CollectionUtils.isEmpty(configs)) {
return configs;
}

//本地缓存为空,则重新调用webservice查询数据,并更新缓存
InterfaceManageResult result = interfaceManageFacade.queryAllInterfaceList();
if (null == result || !result.isSuccess()) {
return null;
}
configs = result.getInterfaceConfigList();
return configs;
}

『拾』 java中如何将file缓存化,然后写入本地

File file = new File("F:\\私人地带\\宽带账号.txt");
try {
FileInputStream fs = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(fs,"GBK"));
String subStr = "";

File toFile = new File("F:\\dd.txt");
if(toFile.exists()) toFile.delete();
toFile.createNewFile();

BufferedWriter bw = new BufferedWriter(new FileWriter(toFile));
while(null != (subStr = br.readLine())){
System.out.println(subStr);
bw.write(subStr);
}
bw.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

阅读全文

与java本地缓存实现相关的资料

热点内容
网站在线播放视频国语 浏览:667
台湾伤痕les剧 浏览:426
两个数据库实时同步 浏览:67
微信支付宝账单怎么看 浏览:448
眼镜看见老师内衣 浏览:322
激情床戏韩国古代 浏览:661
50部违禁小说 浏览:715
团鬼六电影 浏览:290
vip免费网站全免费 浏览:257
夏荷vs秋凝乳斗 浏览:420
苹果下载打不开怎么回事 浏览:765
刘凡菲地下车库什么电影 浏览:507
爱情动作电影名字 浏览:917
穿越雪域雄鹰之战神系统 浏览:233
关于越南缅甸的电影 浏览:436
朴银狐同类型演员 浏览:762
js时间保留2位 浏览:608
午马神电影 浏览:257
现代师徒训诫罚跪严苛 浏览:374
金花媛代表作 浏览:685

友情链接