JAVA實現靜態變量緩存


   在系統啟動時可以將數據保存到一個靜態變量中,經過一定時間更新一次,完成緩存的效果。

CacheManager.java

package com.zqgame.util;

import java.util.HashMap;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;

import org.apache.log4j.Logger;
/**
 * 緩存管理工具
 * @author Administrator
 *
 */
public class CacheManager {
    private static final Logger LOG=Logger.getLogger(CacheManager.class);
    
    /**存儲緩存數據**/
    public static  Map<String, Object> map = new HashMap<String, Object>();
    /**
     * 更新緩存數據
     */
    public static void updateCache(){
        clearCache();
        loadData();
        LOG.info(map.size()+"條數據已加載到緩存!");
    }
    /**
     * 清理緩存數據
     */
    public static void clearCache(){
        map.clear();
    }
    /**
     * 獲取緩存數據
     */
    public static Object getRealLink(String key){
        return map.get(key);
    }
    /**
     * 加載緩存數據
     */
    private static void loadData(){
        LOG.info("加載緩存數據,這里根據業務需求完成緩存數據的獲取!");
    }
    /**
     * 啟動定時任務,經過一定的時間(單位分鍾),更新緩存數據
     * @param minute
     */
    public static void startTask(int minute){
        TimerTask task  = new TimerTask() {
            @Override
            public void run() {
                // TODO Auto-generated method stub
                updateCache();
            }
        };
        Timer timer = new Timer();
        long delay = 0;
        long inteval = minute * 60 * 1000;
        timer.scheduleAtFixedRate(task, delay, inteval);
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM