java cache详解,Java内存缓存详解

1.缓存为什么要存在

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

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

一段时间内不变的数据

3.为什么要有本地缓存

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

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

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

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

importjava.util.Map;importjava.util.concurrent.ConcurrentHashMap;public classCacheClass {private static Map cache = new ConcurrentHashMap();public static void setCache(String key, String obj, longseconds){

cache.put(key,obj);

}public staticString getCache(String key){returncache.get(key);

}public static voidremoveCache(String key){

cache.remove(key);

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

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值