jodd中的缓存

Jodd是一个开源的、轻量级的适用于web开发的工具集合。包大小只有1M,使用超级简单。其实jodd的文档写的不全,只介绍了一部分的功能,有些工具类没有介绍。在翻看jodd源码时,看到jodd封装了Cache,使用起来非常简单。在这里简单介绍下。

jodd的Cache类在jodd-corejar包中,实现的缓存有先进先出(FIFO)、最近最少使用(LFU)、最近最久未使用(LRU)、基于时间的缓存。

FIFO

很简单的缓存,就是一个指定大小的队列,存放的时候,如果队列已经满了,就淘汰最早的缓存。

    //先进先出队列,队列大小100,缓存时间设置为5秒钟
    FIFOCache<string ,String> fifoCache = new FIFOCache<>(100, 5 * 1000);
    fifoCache.put("aaa", "some value");
    fifoCache.put("bbb", "some value");
    System.out.println(fifoCache.get("aaa"));

LFU

最近最少使用,统计一段时间内,被访问次数最少的缓存,最先被淘汰。

    LFUCache lfuCache = new LFUCache(100, 5 * 1000);
    lfuCache.put("aaa", "some value");
    lfuCache.put("bbb", "some value");
    System.out.println(lfuCache.get("aaa"));

LRU

最近最久未被使用,最近一段时间,没有被访问的缓存,最先被淘汰。

    LRUCache</string><string ,String> lruCache = new LRUCache</string><string , String>(100, 5*1000);
    lruCache.put("aaa", "some value");
    lruCache.put("bbb", "some value");
    System.out.println(lruCache.get("aaa"));

TimedCache

基于时间的缓存,就是设置一个失效时间,如果时间过期了,缓存就会被删除。

    TimedCache</string><string ,String> timedCache = new TimedCache<>(5*1000);
    timedCache.schedulePrune(1000);  //一秒钟扫描一次,如果缓存过期,就删除
    timedCache.put("aaa", "some value");
    timedCache.put("bbb", "some value");
    System.out.println(timedCache.get("aaa"));</string>
版权声明

本站文章、图片、视频等(除转载外),均采用知识共享署名 4.0 国际许可协议(CC BY-NC-SA 4.0),转载请注明出处、非商业性使用、并且以相同协议共享。

© 空空博客,本文链接:https://www.yeetrack.com/?p=1290