社区
Java SE
帖子详情
缓存
mtv0199
2011-05-17 06:37:43
要做一个本地缓存,需求如下:
需要缓存一个list,每次http请求的时候读取的都是list里面的值,缓存定时(每天晚上10点)去查询数据库,更新这个list。
如何实现?最好有详细代码参考。
...全文
200
11
打赏
收藏
缓存
要做一个本地缓存,需求如下: 需要缓存一个list,每次http请求的时候读取的都是list里面的值,缓存定时(每天晚上10点)去查询数据库,更新这个list。 如何实现?最好有详细代码参考。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
q1531
2011-05-18
打赏
举报
回复
主要还是看具体的应用。如果按你的说法那搞个线程定时读取数据放到一个static List中就行了。
mtv0199
2011-05-18
打赏
举报
回复
[Quote=引用 8 楼 zn85600301 的回复:]
这样看你的数据量大不大
不大的话在自己系统内定义一个全局的hashMap 然后将缓存的值存进去
list每次取值都需要遍历整个容器
map定义好KEY就方便取了
[/Quote]
我还是不太明白为什么要用map,arraylist不是实现了RandomAccess接口么,可以随机读取。
Joop_Song
2011-05-18
打赏
举报
回复
[Quote=引用 2 楼 mtv0199 的回复:]
引用 1 楼 healer_kx 的回复:
那最好不用List,而是用HashMap了。~
为什么呢?
例如:页面需要展现一些user数据,缓存从数据库里面读取所有user放入一个list里面。你是说,不用list,用hashmap?
[/Quote]
用hashmap的键值对存储数据,键值存:IP或者User名,对应的value存:用户的信息,这样会更好读取数据,比list好多了。
chosen0ne
2011-05-18
打赏
举报
回复
如果用memcached,就不是本地缓存了。。。。
用HashMap比list时间复杂度要小。HashMap是O(1)而list是O(n),肯定是越快越好,应该用HashMap
如果存入的元素是要排好序的,TreeMap会把Key进行排序
zn85600301
2011-05-18
打赏
举报
回复
这样看你的数据量大不大
不大的话在自己系统内定义一个全局的hashMap 然后将缓存的值存进去
list每次取值都需要遍历整个容器 map定义好KEY就方便取了
如果数据量大 可以考虑memcached
每晚10点 你用spring的quartz 写个定时任务很容易
mtv0199
2011-05-17
打赏
举报
回复
[Quote=引用 4 楼 healer_kx 的回复:]
嗯,3楼也肯定了我的说法,。
HashMap cache = new HashMap();
cache.put("image1", image1);
cache.put("image2", image2);
cache.put("image3", image3);
cache.put("image4", image4);
等用到的时候,缓存就发挥作用了。
……
[/Quote]
我用的list是排好序的,页面有分页,每次从list里面取值。
mtv0199
2011-05-17
打赏
举报
回复
还有高手没?
healer_kx
2011-05-17
打赏
举报
回复
嗯,3楼也肯定了我的说法,。
HashMap cache = new HashMap();
cache.put("image1", image1);
cache.put("image2", image2);
cache.put("image3", image3);
cache.put("image4", image4);
等用到的时候,缓存就发挥作用了。
Image img = (Image)cache.get(whichImage);
img用就是了,如果是null再重新加载即可。
安心逍遥
2011-05-17
打赏
举报
回复
缓存里要用HashMap,键值对,这样好取,好用
list数据会不好操作,而且从缓存中得到的对象本身就是一个map,用list还要转换
mtv0199
2011-05-17
打赏
举报
回复
[Quote=引用 1 楼 healer_kx 的回复:]
那最好不用List,而是用HashMap了。~
[/Quote]
为什么呢?
例如:页面需要展现一些user数据,缓存从数据库里面读取所有user放入一个list里面。你是说,不用list,用hashmap?
healer_kx
2011-05-17
打赏
举报
回复
那最好不用List,而是用HashMap了。~
Java中的
缓存
技术
时长(分):73视频频内容:
缓存
系列的1-3Java
缓存
技术系列(1)Java
缓存
的原因Java
缓存
的基本策略Java
缓存
的需求分析可重入锁Java
缓存
的简单实现常用的Java
缓存
框架Java
缓存
技术系列(2)EHCache
缓存
的介绍与安装...
缓存
穿透、
缓存
击穿、
缓存
雪崩区别和解决方案
一、
缓存
处理流程 前台请求,后台先从
缓存
中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新
缓存
,并返回结果,数据库也没取到,那直接返回空结果。 二、
缓存
穿透 描述:
缓存
...
【分析向】没有三级
缓存
会导致什么?
通过上篇(【实践向】当移除了三级
缓存
……)的实践,我们得出的结论是:如果不存在代理对象,二级
缓存
就可以解决循环依赖性的问题,但是当存在代理对象的时候,二级
缓存
则无法完全解决循环依赖,需要引入三级
缓存
...
(精华)2020年8月18日
缓存
机制
缓存
1.
缓存
理解
缓存
定义: 浏览器在本地磁盘上将用户之前请求的数据存储起来,当访问者再次需要改数据的时候无需再次发送请求,直接从浏览器本地获取数据
缓存
的好处: 减少请求的个数 节省带宽,避免浪费不必要的...
缓存
穿透,
缓存
击穿,
缓存
雪崩解决方案分析
设计一个
缓存
系统,不得不要考虑的问题就是:
缓存
穿透、
缓存
击穿与失效时的雪崩效应。
缓存
穿透
缓存
穿透是指查询一个一定不存在的数据,由于
缓存
是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则...
Java SE
62,614
社区成员
307,319
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章