博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java内存缓存
阅读量:5154 次
发布时间:2019-06-13

本文共 1442 字,大约阅读时间需要 4 分钟。

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
cache = new ConcurrentHashMap
(); 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); }}

 

转载于:https://www.cnblogs.com/henuyuxiang/p/6934043.html

你可能感兴趣的文章
深入理解 JavaScript 事件循环(一)— event loop
查看>>
Hive(7)-基本查询语句
查看>>
注意java的对象引用
查看>>
C++ 面向对象 类成员函数this指针
查看>>
NSPredicate的使用,超级强大
查看>>
自动分割mp3等音频视频文件的脚本
查看>>
判断字符串是否为空的注意事项
查看>>
布兰诗歌
查看>>
js编码
查看>>
Pycharm Error loading package list:Status: 403错误解决方法
查看>>
steps/train_sat.sh
查看>>
转:Linux设备树(Device Tree)机制
查看>>
iOS 组件化
查看>>
(转)Tomcat 8 安装和配置、优化
查看>>
(转)Linxu磁盘体系知识介绍及磁盘介绍
查看>>
tkinter布局
查看>>
命令ord
查看>>
Sharepoint 2013搜索服务配置总结(实战)
查看>>
博客盈利请先考虑这七点
查看>>
使用 XMLBeans 进行编程
查看>>