zoukankan      html  css  js  c++  java
  • ehcache如何判断缓存数据是否存在--isKeyInCache

     

    Posted on 2011-04-22 15:59 asdtiang 阅读(5552) 评论(0)  编辑  收藏 
    boolean isKeyInCache(java.lang.Object key)
    An inexpensive check to see if the key exists in the cache.
    Parameters:
    key - the key to check for
    Returns:
    true if an Element matching the key is found in the cache. No assertions are made about the state of the Element.

    这个方法是Ehcache的方法,它只判断key是否存在,并不判断这个缓存元素过期没有,所以当元素加入缓存时key就一直存在,所以就算元素过期,只要key被缓存过一次,这个方法就返回true,
    即缓存元素被移除的话,key还存在。


    程序就不能用这个方法来判断缓存中是否存在这个某个缓存元素。
     得用如下方法:

    getQuiet

    Element getQuiet(java.lang.Object key)
    throws java.lang.IllegalStateException,
    CacheException
    Gets an element from the cache, without updating Element statistics. Cache statistics are also not updated.
    Parameters:
    key - a serializable value
    Returns:
    the element, or null, if it does not exist.
    Throws:
    java.lang.IllegalStateException - if the cache is not Status.STATUS_ALIVE
    CacheException
    Since:
    1.2
    See Also:
    isExpired(net.sf.ehcache.Element)

    isExpired

    boolean isExpired(Element element)
    throws java.lang.IllegalStateException,
    java.lang.NullPointerException
    Checks whether this cache element has expired.

    The element is expired if:

    1. the idle time is non-zero and has elapsed, unless the cache is eternal; or
    2. the time to live is non-zero and has elapsed, unless the cache is eternal; or
    3. the value of the element is null.
    Parameters:
    element - the element to check
    Returns:
    true if it has expired
    Throws:
    java.lang.IllegalStateException - if the cache is not Status.STATUS_ALIVE
    java.lang.NullPointerException - if the element is null


    示例代码:
    Element element=cache.getQuiet(key);
            log.info("element:"+element);
            if(element!=null){
                log.info("cache.isExpired(element):"+cache.isExpired(element));
                log.info("cacheName:" + cacheName + " key:" + key + " isExist:true");
                return true;
            }
            else{
                log.info("cacheName:" + cacheName + " key:" + key + " isExist:false");
                return false;
            }


  • 相关阅读:
    iOS 文件操作--归档和解档
    iOS中UITabBarController的使用
    Objective-C基础知识点总结,字符串操作,数组操作,字典操作
    Objective-C中协议和分类总结
    Objective-C文件操作之NSCoding协议之小练习
    浅谈Objective-C继承和多态
    Objective-C内存管理基础知识
    MySort(选做)的实现
    20175308 2018-2019-2 实验四 《Android开发基础》实验报告
    JAVA 第十一周学习总结
  • 原文地址:https://www.cnblogs.com/liuys635/p/12590934.html
Copyright © 2011-2022 走看看