/**
* Reads a cache item's content
* @param key
* @return
*/
public Object getContent(String key) {
if (hasCache(key)) {
Cache cache = getCache(key);
if (cacheExpired(cache)) {
return null;
}
return cache.getValue();
} else {
return null;
}
}
/**
*
* @param key
* @param content
* @param ttl
*/
public void putContent(String key, Object content, long ttl) {
Cache cache = new Cache();
cache.setKey(key);
cache.setValue(content);
cache.setTimeOut(ttl + new Date().getTime());
cache.setExpired(false);
putCache(key, cache);
}
/** @modelguid {172828D6-3AB2-46C4-96E2-E72B34264031} */
private boolean cacheExpired(Cache cache) {
if (cache == null) {
return false;
}
long milisNow = new Date().getTime();
long milisExpire = cache.getTimeOut();
if (milisExpire < 0) { // Cache never expires
return false;
} else if (milisNow >= milisExpire) {
return true;
} else {
return false;
}
}
缓存对外接口:
存放有过期时间的缓存/没有过期时间,默认过期时间.
public void putContent(String key, Object content, long ttl)
public void putContent(String key, Object content)
获取缓存对象,如果为null或者过期了,返回null
public Object getContent(String key)
对外接口封装缓存的所有信息,只提供接口调用.
分享到:
相关推荐
避免雪崩可以通过分散缓存过期时间、加锁或使用队列控制请求、设置缓存存活时间的随机范围等方式。例如,可以通过在原始过期时间基础上增加一个随机值来避免集体失效。 2. **缓存穿透** 缓存穿透是指用户查询的...
uniapp缓存增加过期时间插件
Geoserver GWC 缓存的生成与失效 Geoserver 是一个基于开源的 GIS 服务器,可以提供强大的地图服务功能。其中,GWC(GeoWebCache)是 Geoserver 中的一个重要组件,负责生成和管理地图缓存。缓存的生成和失效是 GWC...
4.有缓存文件过期机制默认一周 5.显示缓存大小/个数,全部清除缓存/单个文件清除缓存/按时间清除缓存/按路径清除缓存方法多样并且都可以自定义路径可扩展性强 6.有缓存键过滤功能 7.离线下载功能 8.多种...
3. 回调函数:通过设置回调函数,当缓存项过期时触发,以便执行清理操作或更新缓存。 4. 容量限制:根据服务器内存设置缓存的最大容量,超过时按LRU(Least Recently Used)策略移除最近最少使用的项。 五、...
在深入探讨《HASHMAP缓存.txt》所提及的知识点前,我们先来解析一下文档的标题、描述和部分内容,以确保我们对所讨论的主题有全面的理解。标题“HASHMAP缓存.txt”暗示了文档主要关注的是Java编程语言中HashMap作为...
当浏览器或缓存服务器请求资源时,会根据这个时间与本地缓存版本进行比较。 4. **Expires**: 定义了资源的过期时间,同样以GMT格式给出。如果当前时间超过这个时间,浏览器将认为资源过期,需要重新获取。 在实际...
1. **时间触发缓存**:设置缓存过期时间,超过时间限制后自动更新。 2. **内容改变触发缓存**:检测数据变化,一旦发现更新,立即更新缓存。 3. **人工触发缓存**:手动通知系统数据已过期,强制生成新缓存。 **...
有缓存文件过期机制默认一周 3.显示缓存大小/个数,全部清除缓存/单个文件清除缓存/按时间清除缓存方法多样并且都可以自定义路径可扩展性强 4.离线下载功能 5.多种请求类型的判断。也可不遵循,自由随你定...
例如,SpringBoot中的简单MapCache实现就展示了如何通过这个数据结构实现存取删除操作,并通过定时任务检查并清理过期的缓存条目。 接着,我们来看看Ehcache。Ehcache是一个流行的Java缓存框架,它支持内存和磁盘...
- `no-cache`: 强制客户端在使用缓存之前必须先与服务器验证。 - `no-store`: 完全禁止客户端缓存任何响应数据。 - `max-age=0`: 指示缓存可以存储响应一段时间,但之后必须重新验证。 示例代码: ```java response...
如果验证码在缓存中并且未过期,与用户输入的验证码匹配,验证成功;否则,验证失败。 ```csharp public bool VerifySmsCode(string userId, string inputSmsCode) { if (_cache.TryGetValue(userId, out var ...
在这个"Ehcache二级缓存.zip"压缩包中,可能包含了实现Ehcache二级缓存的相关文件,如jar包、配置文件和文档等。 1. **Ehcache二级缓存**:在Java应用中,一级缓存通常指的是JVM内的内存缓存,而二级缓存则可以是...
正确理解和使用缓存API,结合适当的缓存策略,可以极大地优化数据库交互,提升系统响应速度,同时要留意缓存的局限性,如数据一致性问题和数据过期管理。在开发过程中,应当根据项目需求和资源条件,合理配置和利用...
本文将深入探讨四种主要的缓存技术:CDN缓存、反向代理缓存、应用程序缓存和分布式缓存,以及讨论为何需要设置缓存过期时间。 首先,CDN(内容分发网络)缓存是一种分布式网络服务,它通过在全球范围内部署多个节点...
在本示例`mybatis-demo13-缓存.zip`中,我们将探讨如何将Ehcache集成到MyBatis中,以实现高效的缓存管理。 首先,我们需要了解Ehcache的基本概念。Ehcache是一个开放源码的、高性能的分布式缓存系统,支持内存和...
本项目“ios-WebView离线缓存.zip”主要探讨的是如何利用YYCache和系统提供的NSURLProtocol实现WebView的离线缓存功能,这对于在网络状况不佳或者无网络环境下的用户体验提升至关重要。 YYCache是由著名iOS开发者...
然而,随着时间推移,缓存可能会积累无效或过期的数据,占用宝贵的系统资源,甚至可能导致系统性能下降或出现错误。 清理区域HIS系统的缓存涉及以下几个关键知识点: 1. **缓存策略**:了解HIS系统采用的缓存策略...
定时缓存功能允许我们存储计算结果或从远程服务获取的数据,并在预设的时间间隔后自动过期,以确保数据的时效性。这在处理频繁但计算成本高或者网络请求延迟的操作时特别有用。 1. **创建缓存** 创建一个Guava ...
// 设置 3min 的超时,防止 del 操作失败的时候,下次缓存过期一直不能 load db if (redis.setnx(key_mutex, 1, 3 * 60) == 1) { // 代表设置成功 value = db.get(key); ... } } ... } 缓存系统设计需要考虑...