社区
Java SE
帖子详情
缓存
mtv0199
2011-05-17 06:37:43
要做一个本地缓存,需求如下:
需要缓存一个list,每次http请求的时候读取的都是list里面的值,缓存定时(每天晚上10点)去查询数据库,更新这个list。
如何实现?最好有详细代码参考。
...全文
201
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中的
缓存
技术
本课程讲师为清华硕士,曾就职于甲骨文等多家知名IT公司,有丰富的开发实战经验,内容条理,讲解清晰,声音甜美。Java中的
缓存
一直是令人困惑,而且有比较常用的技术。他对于提高系统性能有很大的作用。今年来,随着大数据技术的崛起,作为
缓存
技术之一的memcached也备受关注。本系列视频从
缓存
需求讲起,带你逐步认识各种
缓存
技术的原理,使用。由浅入深,由表及里。相信会让你对
缓存
技术有一个清楚明白的认识。时长(分):73视频频内容:
缓存
系列的1-3Java
缓存
技术系列(1)Java
缓存
的原因Java
缓存
的基本策略Java
缓存
的需求分析可重入锁Java
缓存
的简单实现常用的Java
缓存
框架Java
缓存
技术系列(2)EHCache
缓存
的介绍与安装EHCache
缓存
的基本策略EHCache
缓存
的配置详解EHCache
缓存
的独立使用EHCache
缓存
与Spring的整合Java
缓存
技术系列(3)EHCache
缓存
与Hibernate的整合EHCache分布式
缓存
视频特点:原创,多年经验总结,精选最具价值实用技法,短小精干。
缓存
穿透、
缓存
击穿、
缓存
雪崩区别和解决方案
一、
缓存
处理流程 前台请求,后台先从
缓存
中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新
缓存
,并返回结果,数据库也没取到,那直接返回空结果。 二、
缓存
穿透 描述:
缓存
穿透是指
缓存
和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导...
【分析向】没有三级
缓存
会导致什么?
通过上篇(【实践向】当移除了三级
缓存
……)的实践,我们得出的结论是:如果不存在代理对象,二级
缓存
就可以解决循环依赖性的问题,但是当存在代理对象的时候,二级
缓存
则无法完全解决循环依赖,需要引入三级
缓存
那么、在没有三级
缓存
的情况下,引入代理后为什么会报错?由于我们的代码只修改了两处,但前后出现了不同执行结果,所以我们可以将分析重点🔎放在修改的两处代码上(代码与文章【实践向】当移除了三级
缓存
……中的修改后的代码一致,想动手实践下的可以去瞅下,本文较长,这里就不贴叻)
(精华)2020年8月18日
缓存
机制
缓存
1.
缓存
理解
缓存
定义: 浏览器在本地磁盘上将用户之前请求的数据存储起来,当访问者再次需要改数据的时候无需再次发送请求,直接从浏览器本地获取数据
缓存
的好处: 减少请求的个数 节省带宽,避免浪费不必要的网络资源 减轻服务器压力 提高浏览器网页的加载速度,提高用户体验 2.
缓存
分类 强
缓存
不会向服务器发送请求,直接从本地
缓存
中获取数据 请求资源的的状态码为: 200 ok(from memory cache) 协商
缓存
向服务器发送请求,服务器会根据请求头的资源判断是否命中
缓存
穿透,
缓存
击穿,
缓存
雪崩解决方案分析
前言 设计一个
缓存
系统,不得不要考虑的问题就是:
缓存
穿透、
缓存
击穿与失效时的雪崩效应。
缓存
穿透
缓存
穿透是指查询一个一定不存在的数据,由于
缓存
是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入
缓存
,这将导致这个存在的数据每次请求都要到存储层去查询,失去了
缓存
的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。 解决方案
Java SE
62,616
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章