• 技术列传 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结果序列化进数据库就好了,当第三方接口报错,便可直接从数据库中读取了。

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

  • 相关阅读:
    Oracle11gR2下PL/SQL访问网络的错误ORA24247
    安装cx_Oracle
    搭建基于FreeNAS的共享存储
    unique constraint 和 unique index 的关系
    Oracle11gR2_RAC全静默安装攻略
    struts中的constant详解 (转载)
    网摘
    用 Google 的 FaceNet 做人脸识别极客帮课程笔记
    【Linux】Git 安装最新版
    【Jmeter】性能测试EMQ X 压测
  • 原文地址:https://www.cnblogs.com/adolfmc/p/2920796.html
Copyright © 2020-2023  润新知