javacache,javacache緩存

本文目錄一覽:

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

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/157281.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-18 19:59
下一篇 2024-11-18 19:59

相關推薦

  • Python 數據緩存及其應用

    本文將為大家詳細介紹Python數據緩存,並提供相關代碼示例。 一、Python 數據緩存基礎概念 Python 是一種解釋型語言,每次執行完一條語句後就會將內存中的結果清空,如果…

    編程 2025-04-29
  • Python緩存圖片的處理方式

    本文將從多個方面詳細闡述Python緩存圖片的處理方式,包括緩存原理、緩存框架、緩存策略、緩存更新和緩存清除等方面。 一、緩存原理 緩存是一種提高應用程序性能的技術,在網路應用中流…

    編程 2025-04-29
  • Java圖片緩存的實現與優化

    Java中的圖片緩存是Web開發中常用的技術,它可以提高網頁的載入速度和用戶體驗。本文將從以下三個方面對Java圖片緩存進行詳細闡述: 一、圖片緩存的基本實現 圖片緩存技術是指將一…

    編程 2025-04-27
  • Hibernate緩存詳解

    在關係型資料庫中,為了減少重複查詢並提高查詢效率,採用緩存技術是非常常見的做法。Hibernate緩存是Hibernate框架為了加速讀取數據而提供的一種機制。通過緩存,Hiber…

    編程 2025-04-25
  • 使用RedisTemplate設置緩存過期時間

    RedisTemplate 是 Spring Data Redis 為了方便開發者操作 Redis 資料庫而提供的一個模板類。在使用 RedisTemplate 操作 Redis …

    編程 2025-04-24
  • 使用Spring Cloud Redis實現分散式緩存管理

    一、背景介紹 在分散式互聯網應用中,緩存技術扮演著非常重要的角色。緩存技術能夠有效減輕資料庫的訪問壓力,提高應用的訪問速度。在分散式應用中,如何統一管理分散式緩存成為了一項挑戰。本…

    編程 2025-04-24
  • Compacted:一個高性能的Golang緩存庫

    一、簡介 Compacted是一個使用Golang編寫的緩存庫,旨在提供高性能的內存緩存功能。相對於其他常見的緩存庫,Compacted在內存使用和性能方面都做了一定的優化。 緩存…

    編程 2025-04-23
  • CentOS清理緩存

    一、CentOS中緩存的概念 緩存是指將數據暫時保存在內存中,以加快其後續訪問速度的過程。CentOS系統從多個方面使用緩存來優化性能。例如,內核緩存可以用來緩存文件系統的元數據和…

    編程 2025-04-23
  • Spring Boot緩存詳解

    隨著應用程序越來越複雜,解決性能問題變得越來越重要。緩存是提高應用程序性能的重要方式之一。Spring Boot框架集成了多種緩存技術,使得開發人員可以快速、方便地使用緩存。本文將…

    編程 2025-04-13
  • 緩存命中率全面解析

    隨著網路的發展,許多網站的訪問量急劇增加,為了避免網站的訪問響應速度變慢,緩存技術被廣泛採用。儘管緩存技術可以提高網站的性能,但緩存的命中率仍是影響其效果的關鍵因素之一。在本文中,…

    編程 2025-04-12

發表回復

登錄後才能評論