`

缓存与过期缓存.

阅读更多
 /**
     * 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)

对外接口封装缓存的所有信息,只提供接口调用.
0
2
分享到:
评论

相关推荐

    面试中缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级怎么解答?.docx

    避免雪崩可以通过分散缓存过期时间、加锁或使用队列控制请求、设置缓存存活时间的随机范围等方式。例如,可以通过在原始过期时间基础上增加一个随机值来避免集体失效。 2. **缓存穿透** 缓存穿透是指用户查询的...

    uniapp缓存增加过期时间插件

    uniapp缓存增加过期时间插件

    geoserver gwc缓存的生成与失效

    Geoserver GWC 缓存的生成与失效 Geoserver 是一个基于开源的 GIS 服务器,可以提供强大的地图服务功能。其中,GWC(GeoWebCache)是 Geoserver 中的一个重要组件,负责生成和管理地图缓存。缓存的生成和失效是 GWC...

    ios-AFNetworking 3.x 缓存.zip

    4.有缓存文件过期机制默认一周 5.显示缓存大小/个数,全部清除缓存/单个文件清除缓存/按时间清除缓存/按路径清除缓存方法多样并且都可以自定义路径可扩展性强 6.有缓存键过滤功能 7.离线下载功能 8.多种...

    ASP.NET15缓存机制.rar

    3. 回调函数:通过设置回调函数,当缓存项过期时触发,以便执行清理操作或更新缓存。 4. 容量限制:根据服务器内存设置缓存的最大容量,超过时按LRU(Least Recently Used)策略移除最近最少使用的项。 五、...

    HASHMAP缓存.txt

    在深入探讨《HASHMAP缓存.txt》所提及的知识点前,我们先来解析一下文档的标题、描述和部分内容,以确保我们对所讨论的主题有全面的理解。标题“HASHMAP缓存.txt”暗示了文档主要关注的是Java编程语言中HashMap作为...

    页面的缓存与不缓存设置及html页面中meta的作用

    当浏览器或缓存服务器请求资源时,会根据这个时间与本地缓存版本进行比较。 4. **Expires**: 定义了资源的过期时间,同样以GMT格式给出。如果当前时间超过这个时间,浏览器将认为资源过期,需要重新获取。 在实际...

    PHP查询缓存.doc

    1. **时间触发缓存**:设置缓存过期时间,超过时间限制后自动更新。 2. **内容改变触发缓存**:检测数据变化,一旦发现更新,立即更新缓存。 3. **人工触发缓存**:手动通知系统数据已过期,强制生成新缓存。 **...

    ios-AFNetworking和NSURLSession封装添加了请求缓存,离线下载,显示缓存大功能,删除缓存等功能.zip

    有缓存文件过期机制默认一周 3.显示缓存大小/个数,全部清除缓存/单个文件清除缓存/按时间清除缓存方法多样并且都可以自定义路径可扩展性强 4.离线下载功能 5.多种请求类型的判断。也可不遵循,自由随你定...

    分布式缓存.docx

    例如,SpringBoot中的简单MapCache实现就展示了如何通过这个数据结构实现存取删除操作,并通过定时任务检查并清理过期的缓存条目。 接着,我们来看看Ehcache。Ehcache是一个流行的Java缓存框架,它支持内存和磁盘...

    JSP清除缓存.txt

    - `no-cache`: 强制客户端在使用缓存之前必须先与服务器验证。 - `no-store`: 完全禁止客户端缓存任何响应数据。 - `max-age=0`: 指示缓存可以存储响应一段时间,但之后必须重新验证。 示例代码: ```java response...

    .NET.CORE验证码存入缓存.rar

    如果验证码在缓存中并且未过期,与用户输入的验证码匹配,验证成功;否则,验证失败。 ```csharp public bool VerifySmsCode(string userId, string inputSmsCode) { if (_cache.TryGetValue(userId, out var ...

    Ehcache二级缓存.zip

    在这个"Ehcache二级缓存.zip"压缩包中,可能包含了实现Ehcache二级缓存的相关文件,如jar包、配置文件和文档等。 1. **Ehcache二级缓存**:在Java应用中,一级缓存通常指的是JVM内的内存缓存,而二级缓存则可以是...

    PlayFramework框架缓存.pdf

    正确理解和使用缓存API,结合适当的缓存策略,可以极大地优化数据库交互,提升系统响应速度,同时要留意缓存的局限性,如数据一致性问题和数据过期管理。在开发过程中,应当根据项目需求和资源条件,合理配置和利用...

    详解大型网站web服务器缓存.zip

    本文将深入探讨四种主要的缓存技术:CDN缓存、反向代理缓存、应用程序缓存和分布式缓存,以及讨论为何需要设置缓存过期时间。 首先,CDN(内容分发网络)缓存是一种分布式网络服务,它通过在全球范围内部署多个节点...

    mybatis-demo13-缓存.zip

    在本示例`mybatis-demo13-缓存.zip`中,我们将探讨如何将Ehcache集成到MyBatis中,以实现高效的缓存管理。 首先,我们需要了解Ehcache的基本概念。Ehcache是一个开放源码的、高性能的分布式缓存系统,支持内存和...

    ios-WebView离线缓存.zip

    本项目“ios-WebView离线缓存.zip”主要探讨的是如何利用YYCache和系统提供的NSURLProtocol实现WebView的离线缓存功能,这对于在网络状况不佳或者无网络环境下的用户体验提升至关重要。 YYCache是由著名iOS开发者...

    区域his系统清理缓存.rar

    然而,随着时间推移,缓存可能会积累无效或过期的数据,占用宝贵的系统资源,甚至可能导致系统性能下降或出现错误。 清理区域HIS系统的缓存涉及以下几个关键知识点: 1. **缓存策略**:了解HIS系统采用的缓存策略...

    使用google guava 实现定时缓存功能

    定时缓存功能允许我们存储计算结果或从远程服务获取的数据,并在预设的时间间隔后自动过期,以确保数据的时效性。这在处理频繁但计算成本高或者网络请求延迟的操作时特别有用。 1. **创建缓存** 创建一个Guava ...

    如何设计缓存系统:缓存穿透,缓存击穿,缓存雪崩解决方案分析.docx

    // 设置 3min 的超时,防止 del 操作失败的时候,下次缓存过期一直不能 load db if (redis.setnx(key_mutex, 1, 3 * 60) == 1) { // 代表设置成功 value = db.get(key); ... } } ... } 缓存系统设计需要考虑...

Global site tag (gtag.js) - Google Analytics