zoukankan      html  css  js  c++  java
  • 技术列传 guava cache

    技术列传 guava cache

    (2013-01-22 10:05:15)
    标签:

    it

    java

    cache

    分类: IT技术

    Guava cache是轻量级的内存缓存框架,相比于memcache来说适用场景各不相同,虽然用法相对于差不多,不过memcache更多的时候是维护一张内存中一张很大的hash表,基于分布式应用减少对数据库的很庞大的表耗性能操作,而这里要讲的guava cache多用于缓存经常读表的结果放在内存中,可以把表里经常读取的字段结果缓存,我们这里涉及的背景为:

    我们从第三方接口获取我们所需的信息,为了防止频繁的调用接口,我们将其结果缓存,为了程序的健壮性,防止当对方接口不可用时我们的程序崩溃掉,我们每过 段时间,就把缓存的结果存到数据库中去。又因为我们所需要的信息过段时间第三方就会更新,所以我们需要过期控制,缓存结果过期,就应该重新调用第三方接口 获取信息,不过幸好guava cache已有此机制帮我们实现了。

    具体代码详解如下:

    LoadingCache<Object, Object> cache = CacheBuilder.newBuilder()

    .maximumSize(this.getTotalNum())  //缓存队列最大长度

    .expireAfterAccess(this.getInterval(), TimeUnit.MILLISECONDS) //缓存时效

    .build(new CacheLoader<Object, Object>(){ //信息获取策略 当缓存队列没有或者过期移除了此结果,从第三方重新获取getKeyFromU为第三方方法

    @Override

    public String load(Object key) throws Exception{

    return getKeyFromU(key);

    }

    });

    Map<Object, Object> result = BaseCCMSKey.this.cache.asMap();

    把此map结果序列化进数据库就好了,当第三方接口报错,便可直接从数据库中读取了。

    更多操作比如手动刷新,删除,监听器,以及更多的缓存策略请查阅相关文档。

  • 相关阅读:
    Balanced Binary Tree
    Convert Sorted List to Binary Search Tree
    Convert Sorted Array to Binary Search Tree
    Binary Tree Zigzag Level Order Traversal
    Validate Binary Search Tree
    Binary Tree Level Order Traversal II
    Binary Tree Level Order Traversal
    Maximum Depth of Binary Tree
    如何把U盘的两个盘或者多个盘合成一个
    bugku 想蹭网先解开密码
  • 原文地址:https://www.cnblogs.com/adolfmc/p/2920796.html
Copyright © 2011-2022 走看看