您当前的位置:首页 > 互联网教程

cache java

发布时间:2025-05-25 12:46:26    发布人:远客网络

cache java

一、cache java

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

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

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

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

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

6、说了这么多,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();}

二、Java的应用缓存cache如何入门

跟session不是一个概念,简单的谈下我个人对缓存的看法吧,你可以把它想象成一个容量大的hashMap,可以往里面get set数据,由于数据存在内存当中而不是数据库中,所以存取速度较快。

java常用的缓存有:ehcache, oscache,jcache,这些cache都是单机的,即存在本机的内存中,另外分布式的cache我用过memcache,它被独立部署在一台服务器上,可以实现多个客户端共用缓存。

一般用到缓存的场景:1.在处理并发请求,需要及时响应的。2.加快系统响应速度。举个例子:比如购物网站有售卖物品的排行榜,这种数据都是由数据库中N多表关联查询排序得到的,那么就可以存在缓存当中,当页面请求查看排行榜时直接取缓存中的数据。后台定时任务根据一定的时间间隔计算好排行结果,再替换到当前缓存中。这就是一个简单的缓存应用示例。

具体用法你可以参考各个缓存的说明文档,百度一下很多的。纯手打,望采纳~

三、java ehcache

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

EhCache是一个纯Java的进程内缓存框架,具有快速、精干等特点。主要面向通用缓存,Java EE和轻量级容器,具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序的功能。

4、缓存数据有两级:内存和磁盘,因此无需担心容量问题。

5、缓存数据会在虚拟机重启的过程中写入磁盘。

6、可以通过RMI、可插入API等方式进行分布式缓存。

7、具有缓存和缓存管理器的侦听接口。

8、支持多缓存管理器实例,以及一个实例的多个缓存区域。

Ehcache在java中是如何使用的?

具体代码如下:代码实现的功能非常简单,即创建CacheManager,往里面存放一个Cache,然后往cache里面存数据和取数据,目的是展示Ehcache的基本使用。/** * XXX.com Inc. * Copyright (c) 2004-2014 All Rights Reserved. */ package com.test.encache;  import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; /** *  * @author XXX * @version $Id: EncacheTest.java, v 0.1 2014年8月8日 下午5:30:03 XXX Exp $ */ public class EncacheTest {    //一些配置参数    //private final static String configFileName      = "ehcache.xml";    //private final static int    maxEntriesLocalHeap = 1000;    private static CacheManager cacheManager;    static String               cacheName = "cache1";     public static void main(String[] args) {        ehcacheSetUp();         ehcacheUse();    }     private static void ehcacheSetUp() {         cacheManager = CacheManager.create();         //CacheConfiguration configuration = new CacheConfiguration(configFileName,        //    maxEntriesLocalHeap);         //Cache cache = new Cache(configuration);        cacheManager.addCache(cacheName);     }     private static void ehcacheUse() {        Cache cache1 = cacheManager.getCache(cacheName);        String key = "key1";        String value = "value1";         writeSomeData(cache1, key, value);         Element element = readSomeData(cache1, key, value);         System.out.println(element);    }     private static void writeSomeData(Cache cache, String key, String value) {        cache.put(new Element(key, value));    }     private static Element readSomeData(Cache cache, String key, String value) {        return cache.get(key);    }}