本地缓存

问题描述

要做一个本地缓存,需求如下:需要缓存一个list,每次http请求的时候读取的都是list里面的值,缓存定时(每天晚上10点)去查询数据库,更新这个list。如何实现?最好有详细代码参考。同这个贴http://topic.csdn.net/u/20110517/18/53f9585c-4df7-4d1c-b86c-d6d85da7beca.htmlps:我需要缓存整个list,list排好序,使用get(index)取值。别说缓存框架,需求不多,不值得引入框架增加复杂度。 问题补充:redstarofsleep 写道

解决方案

引用假如有两个servlet,一个是你说的这个CacheServlet,实现了缓存,一个是DisplayServlet,用来展现缓存里面的东西,那我再DisplayServlet里面如何得到这个list?总不能new CacheServlet().get()吧。不用,static的一直在的。get方法也是static的,直接用类名引用就可以,不用new
解决方案二:
现在好多比较简单的缓存 就是放在static里实现的,也就是常驻内存
解决方案三:
在你程序停止 时就自动跟JVM一块卸载了
解决方案四:
static的东西得你自己手动置空等 操作
解决方案五:
static是不会被 GC掉的
解决方案六:
引用那我如何用这个servlet和其他的进行通信?不能用cookie,session,application不用通信啊,这个static的List是一直存在的。别的地方只要通过下面public的get方法就能拿到了。
解决方案七:
你说的类不被卸载是什么概念,明人只有读的功能,定时器才负责写
解决方案八:
配一个Servlet定义Listprivate static List<T>然后在这个Servlet的init方法中初始化这个List给List同步的set方法,为保证性能get方法不需同步public static List<t> getXxList()public static synchronized void serXxList(List<T> list)
解决方案九:
定义一个全局的静态变量list,(全局的静态变量就相当于把对像入到了内存且不进行释放,也就是缓存了)然后官写个定时器,定时读取数据库的内容,并把内容按照想要的格式放入list以后读的时候就读这个list变量了最后要注意的是记得考虑并发(也就是当定时器在写内容到list时,不能有读的操作),给list在写操作时控制一下同步

时间: 2024-09-20 10:35:52

本地缓存的相关文章

Java8简单的本地缓存实现

原文链接 译文链接 翻译:踏雁寻花,校对:丁一 这里我将会给大家演示用ConcurrentHashMap类和lambda表达式实现一个本地缓存.因为Map有一个新的方法,在key为Null的时候自动计算一个新的value值.非常适合实现cache.来看下代码: 当然,这种方式很傻瓜.即使对于一个非常小的数,例如fibonacci(5),上面的代码也会打印出很多行,而且都是在进行重复计算,输出如下(只截取一部分): Calculating f(6) Calculating f(4) Calcula

java8 使用Map中的computeIfAbsent方法构建本地缓存,提高程序效率

一.概念及使用介绍       在JAVA8的Map接口中,增加了一个方法computeIfAbsent,此方法签名如下: public V computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)      Map接口的实现类如HashMap,ConcurrentHashMap,HashTable等继承了此方法,通过此方法可以构建JAVA本地缓存,降低程序的计算量,程序的复杂度,使代码简洁,易懂.    

Android远程获取图片并本地缓存_Android

对于客户端--服务器端应用,从远程获取图片算是经常要用的一个功能,而图片资源往往会消耗比较大的流量,对应用来说,如果处理不好这个问题,那会让用户很崩溃,不知不觉手机流量就用完了,等用户发现是你的应用消耗掉了他手机流量的话,那么可想而知你的应用将面临什么样的命运. 另外一个问题就是加载速度,如果应用中图片加载速度很慢的话,那么用户同样会等到崩溃. 那么如何处理好图片资源的获取和管理呢? *异步下载 *本地缓存 1.异步下载: 大家都知道,在android应用中UI线程5秒没响应的话就会抛出无响应异

JS localStorage实现本地缓存的方法_javascript技巧

复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>   <head>     <title>本地缓存</title>     <script type="text/javascript">         var strKey = "strKey";        

HTML5权威指南--Web Storage,本地数据库,本地缓存API,Web Sockets API,Geolocation API(简要学习笔记二)

1.Web Storage HTML5除了Canvas元素之外,还有一个非常重要的功能那就是客户端本地保存数据的Web Storage功能. 以前都是用cookies保存用户名等简单信息.   但是cookie有下面几个问题: a:大小:cookies的大小被限制在4KB b:带宽:cookies随HTTP事务一起被发送,因此会浪费一部分发送的cookies时使用的带宽. c:复杂性:要正确的操纵cookies是很困难的.   Web Storage分为两种: <1>sessionStorag

大量图片本地缓存-客户端访问网站缓存所有图片,再次访问时先读取缓存图片,若被清除,再从服务器下载

问题描述 客户端访问网站缓存所有图片,再次访问时先读取缓存图片,若被清除,再从服务器下载 标题已经说的很清晰了.一个功能 我网站上有大量的图片,然后为了减少服务器负担,需要将客户访问过的页面图片缓存在客户端,再次访问时,判断本地缓存是否存在该图片,若有则直接读取本地缓存的图片:若无,在服务器上重新加载一次并添加缓存. 一些博客什么的都查过了,多多少少不适用.... 大神们,最好可以提供一个简易的demo.....万分感激! 解决方案 这个浏览器会自动判断的不要你操心. 解决方案二: 服务器设置图

Android本地缓存DiskLruCache完整详细学习示例

MainActivity如下: package cc.vv; import java.io.File; import java.io.InputStream; import java.io.OutputStream; import libcore.io.DiskLruCache; import libcore.io.Utils; import android.os.Bundle; import android.os.Handler; import android.os.Message; impo

android-Android 网络图片缓存到本地,并优先加载本地缓存图片

问题描述 Android 网络图片缓存到本地,并优先加载本地缓存图片 用volley加载网络图片到listview,但是imageloder貌似只缓存到内存,这要每次重新打开都要在网络上重新下载,求解怎么实现网络图片缓存到本地,并优先加载本地缓存图片,最好有详细的文章解释或者DEMO啊,谢谢大神了~ 解决方案 你自己把它保存到本地文件,比如根据url保存,这样访问同样的地址就会从本地读取 解决方案二: 把你本地文件先读到内存,把这个缓存传给volley 解决方案三: setDiskcache(t

【Python爬虫3】在下载的本地缓存做爬虫

下载缓存 1为链接爬虫添加缓存支持 2磁盘缓存 1用磁盘缓存的实现 2缓存测试 3节省磁盘空间 4清理过期数据 5用磁盘缓存的缺点 3数据库缓存 1NoSQL是什么 2安装MongoDB 3MongoDB概述 4MongoDB缓存实现 5压缩存储 6缓存测试 7MongoDB缓存完整代码 下载缓存 上篇文章,我们学习了如何提取网页中的数据,以及将提取结果存到表格中.如果我们还想提取另一字段,则需要重新再下载整个网页,这对我们这个小型的示例网站问题不大,但对于数百万个网页的网站而言来说就要消耗几个

关于xUtils 在无网络状态下加载本地缓存图片的问题

问题描述 关于xUtils 在无网络状态下加载本地缓存图片的问题 使用xUtils的BitmapUtils加载网络图片,默认缓存图片到本地.但是在无网络状态下再打开app 怎么加载缓存到本地的图片呢? 默认的缓存 只能获取到路径却得不到缓存的文件名,这样就没办法加载了.因为是开始是加载多张网络图片到viewpager所以没办法手动设置文件名.请问有没有好的解决办法?求大神知道 解决方案 http://www.oschina.net/question/2251728_174767 解决方案二: 这