zoukankan      html  css  js  c++  java
  • 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);
        }
    }
  • 相关阅读:
    信息竞赛日志
    Lesson0423
    考试总结
    2020省队选拔前(4.13-5.31)计划
    mvcc浅析
    浅谈cgi和fastcgi
    mysql事务
    mysql慢sql优化总结
    简述缓存击穿 / 缓存雪崩 / 缓存穿透 以及各自的解决方案
    PHP的异常处理机制浅析
  • 原文地址:https://www.cnblogs.com/zhougaojun/p/4465225.html
Copyright © 2011-2022 走看看