zoukankan      html  css  js  c++  java
  • Java内存缓存

    1.缓存为什么要存在

         应用服务器资源是有限的,数据库每秒中接受请求的次数也是有限的。如果利用有限的资源来提供尽可能大的吞吐量呢,一个办法:减少计 算量,缩短请求流程(减少网络io或者硬盘io),这时候缓存就可以大展手脚了

    2.什么样的数据可以存到缓存中

         一段时间内不变的数据

    3.为什么要有本地缓存

         在系统中,有些数据,数据量小,但是访问十分频繁(例如国家标准行政区域数据),针对这种场景,需要将数据搞到应用的本地缓存中,以提升系统的访问效率,减 少无谓的数据库访问(数据库访问占用数据库连接,同时网络消耗比较大),但是有一点需要注意,就是缓存的占用空间以及缓存的失效策略。

    4.内存缓存或本地缓存的原理

         实现缓存的方式就是使用Map,而缓存的实现则主要分为三大步骤:第一:先到缓存里面查找是否有我们需要的对象,若是存在,则直接返回。第二:若是缓存里面没有该对象,则将其数据添加到缓存中去。以备下次使用。第三:如果找到了相应的数据,或者是创建了相应的数据,那就直接使用这个数据。然而,java中Map对象的key设置为String类型,也是为了查找的方便。   

    实际上是建立一个Map集合类实现把缓存的内容保存到内存里面,只要服务器没有关闭缓存就不会被清除,除非人为清除  

    import java.util.Map;
    import java.util.concurrent.ConcurrentHashMap;
    
    public class CacheClass {
        
        private static Map<String,String> cache = new ConcurrentHashMap<String, String>();
        
        public static void setCache(String key, String obj, long seconds){
            cache.put(key,obj);
        }
        
        public static String getCache(String key){
             return cache.get(key);
        }
        
        public static  void removeCache(String key){
            cache.remove(key);
        }
        
        public static void main(String args[]){
            removeCache("China");
            String name = getCache("China");
            System.out.println("name="+name);
            setCache("China","中国",60*60*24*30);
            name = getCache("China");
            System.out.println("第二次取值name="+name);
            removeCache("China");
            name = getCache("China");
            System.out.println("第三次取值name="+name);
        }
    
    }
  • 相关阅读:
    奇虎360安全牛人全球挑战赛无线部…
    C经典之14-双向链表存储1-10---ShinePans
    linux杂谈(十五):ftp的企业应用级的配置(二)
    Cocos2d-x 3.0心得(01)-图片载入与混合模式
    Windows装10gRAC须要注意的几个要点(怎样解决PRKH-1010和PRKR-1062的错误)
    query多选下拉框插件 jquery-multiselect(改动)
    SICP 习题 (1.42)解题总结
    电话号码 【trie树】
    hdu 3854 Glorious Array(线段树or树状数组)
    【转载】CGLib动态代理原理及实现
  • 原文地址:https://www.cnblogs.com/henuyuxiang/p/6934043.html
Copyright © 2011-2022 走看看