zoukankan      html  css  js  c++  java
  • Guava cache功能整理

    说明:
    生成的高速缓存是CacheBuilder可序列化的
    内存key-value具有concurrentHashMap哈希表的特性,并发安全
    默认情况下缓存使用equals方法进行比较,如果创建时指定了weakKeys(),则使用==进行判断相等
    同样如果指定softValues或者weakValues时使用==进行判断相等性;
     
    超时机制:
    当请求maximumSize,maximumWeight,expireAfterWrite,expireAfterAccess,weakKeys,weakValues或softValues中的任何一个时,条目将自动从缓存中逐出。
    如果请求maximumSize或maximumWeight,则可以在每次高速缓存修改时逐出条目。
    如果请求expireAfterWrite或expireAfterAccess,则可以在每次高速缓存修改,偶尔的高速缓存访​​问或调用时删除条目Cache.cleanUp()。过期的条目可能会被计数Cache.size(),但读取或写入操作将永远不可见。
    如果请求weakKeys,weakValues或softValues,则垃圾收集器可以回收缓存中存在的密钥或值。
     
    特点:
    • 将数据key,value缓存到Cache中
    • 当Cache中key超过指定数量时,自动删除最先创建的key
    • 根据key创建或者变更的时间,设置超时时间,超时的key自动删除,expireAfterWrite(long, TimeUnit)
    • 根据key最后一次访问的时间,设置超时时间,超时的key自动删除,expireAfterAccess(long, TimeUnit)
    • 显示的清除key,单独使用 Cache.invalidate(key)、批量使用 Cache.invalidateAll(keys)、使用的所有条目 Cache.invalidateAll()
     
    用例说明:
    LoadingCache<String, String> loadingCache = CacheBuilder.newBuilder()
    .maximumSize(5)//指定缓存可能包含的最大条目数,超过此数量会自动清除
    .expireAfterWrite(10, TimeUnit.SECONDS)//指定在条目创建后经过固定的持续时间或最近更换其值时,应自动从缓存中删除每个条目
    .expireAfterAccess(10,TimeUnit.SECONDS)//指定在条目创建,最近替换其值或上次访问后经过固定持续时间后,应自动从缓存中删除每个条目。
    .refreshAfterWrite(10,TimeUnit.SECONDS)//指定在创建条目后经过固定持续时间或最近替换其值时,活动条目有资格进行自动刷新。
    .expireAfterAccess(10,TimeUnit.SECONDS)//指定在条目创建,最近替换其值或上次访问后经过固定持续时间后,活动条目有资格进行自动刷新。
    .initialCapacity(60)//设置内部哈希表的最小总大小
    .concurrencyLevel(10)//指导更新操作中允许的并发性,分段锁数量
    .maximumWeight(10L)//指定缓存可能包含的条目的最大权重。
    .recordStats()//启用CacheStats缓存操作期间的累积。
    .weakKeys()//指定存储在缓存中的每个键是弱引用
    .weakValues()//指定存储在缓存中的每个值是弱引用
    .softValues()//指定存储在缓存中的每个值是软引用
    .weigher(new Weigher<String, String>() {//指定用于确定条目权重的权重
    @Override
    public int weigh(String key, String value) {
    return 0;
    }
    })
    .build(new CacheLoader<String, String>() {
    @Override
    public String load(String String) {
    return "111";
    }
    });
    String value = loadingCache.get("1");
    收藏文章数量从多到少与“把书读薄”是一个道理
  • 相关阅读:
    access 导数据到sql server 2008
    axis2 调用.net基于https的WebService接口
    android layout 属性大全
    sqlite-manager
    android Permission 访问权限许可
    ImageSwitcher 右向左滑动的实现方式
    java 全角半角转换函数
    Delphi中使用Office中VBA的优缺点
    Delphi中控制VBA 宏
    Delphi 与 Word_VBA
  • 原文地址:https://www.cnblogs.com/use-D/p/9544915.html
Copyright © 2011-2022 走看看