热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javacache,javacache缓存

本文目录一览:1、Java实现简单的缓存机制原理

本文目录一览:


  • 1、Java实现简单的缓存机制原理


  • 2、什么是Java缓存技术Cache


  • 3、cache java

Java实现简单的缓存机制原理

package qinbo hui;

/*

设计思想来自-回钦波(qq: )

*/

public class CacheConfModel implements java io Serializable{

private long beginTime;

private boolean isForever = false;

private int durableTime;

public long getBeginTime() {

return beginTime;

}

public void setBeginTime(long beginTime) {

this beginTime = beginTime;

}

public boolean isForever() {

return isForever;

}

public void setForever(boolean isForever) {

this isForever = isForever;

}

public int getDurableTime() {

return durableTime;

}

public void setDurableTime(int durableTime) {

this durableTime = durableTime;

}

}

package qinbo hui;

import java util *;

import test CacheConfModel;

/*

设计思想来自-回钦波(qq: )

*/

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();

t start();

}

return cm;

}

/**

* 增加缓存

* @param key

* @param value

* @param ccm 缓存对象

* @return

*/

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

boolean flag = false;

cacheMap put(key value);

cacheConfMap put(key ccm);

System out println( now addcache== +cacheMap size());

return true;

}

/**

* 删除缓存

* @param key

* @return

*/

public  boolean removeCache(Object key){

cacheMap remove(key);

cacheConfMap remove(key);

System out println( now removeCache== +cacheMap size());

return true;

}

/**

* 清除缓存的类

* @author wanglj

* 继承Thread线程类

*/

private static class ClearCache extends Thread{

public void run(){

while(true){

Set tempSet = new HashSet();

Set set = cacheConfMap keySet();

Iterator it = erator();

while(it hasNext()){

Object key = it next();

CacheConfModel ccm = (CacheConfModel)cacheConfMap get(key);

//比较是否需要清除

if(!ccm isForever()){

if((new Date() getTime() ccm getBeginTime())= ccm getDurableTime()* * ){

//可以清除 先记录下来

tempSet add(key);

}

}

}

//真正清除

Iterator tempIt = erator();

while(tempIt hasNext()){

Object key = tempIt next();

cacheMap remove(key);

cacheConfMap remove(key);

}

System out println( now thread================ +cacheMap size());

//休息

try {

Thread sleep( * L);

} catch (InterruptedException e) {

// TODO Auto generated catch block

e printStackTrace();

}

}

}

}

lishixinzhi/Article/program/Java/hx/201311/25737

什么是Java缓存技术Cache

java缓存技术

一、什么是缓存

1、Cache是高速缓冲存储器

一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问

2、凡是位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为

Cache

二、缓存的分类

1、基于web应用的系统架构图

2、在系统架构的不同层级之间,为了加快访问速度,都可以存在缓存

操作系统磁盘缓存-减少磁盘机械操作

数据库缓存-减少文件系统I/O

应用程序缓存-减少对数据库的查询

Web服务器缓存-减少应用服务器请求

客户端浏览器缓存-减少对网站的访问。

cache java

cache java是什么, 让我们一起了解一下?

Cache 是一个像 Map 一样的数据结构,它允许基于 Key 的临时储存。缓存被单个 CacheManager 拥有。

Java 的缓存 API 定义了五个核心接口:CachingProvider,CacheManager,Cache,Entry 和 ExpiryPolicy。

Java实现cache的基本机制是什么?

我这里说的cache不是指CPU和RAM之间的缓存,而是java应用中间常用的缓存。最常使用的场合就是访问数据库的时候为了提高效率而使用的 cache。一般的用法就是把数据从数据库读到内存,然后之后的数据访问都从内存来读,从而减少对数据库的读取次数来提高效率。

说了这么多,Java 下到底如何实现Cache,希望下面的实际案例可以帮助到你。 public class CacheFactory {    private static ConcurrentHashMap  caches = new ConcurrentHashMap();    private static ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);      private static void register(Cache cache) {       caches.put(cache.category(), cache);    }      private static void registerAll() {       register(new StockCache());    }      public static void init() {       registerAll();         for (Cache cache : caches.values()) {          executorService.scheduleAtFixedRate(new Runnable() {             @Override             public void run() {                cache.refresh();             }          }, 0, cache.interval(), TimeUnit.MILLISECONDS);       }    }      public static Cache getCache(String key) {       if (caches.contains(key)) {          return caches.get(key);       }       return null;    } }   // cache接口除了需要提供interval和refresh以外,还需要提供一个category来区分不同的Cache public interface Cache {    /**     * Refresh the cache. If succeed, return true, else return false;     *      * @return     */    boolean refresh();      /**     * How much time it will refresh the cache.     *      * @return     */    long interval();      /**     * Cache's category. Each cache has distinct category.     *      * @return     */    String category(); }


推荐阅读
author-avatar
mobiledu2502911415
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有