当前位置:编程学习 > 网站相关 >>

小巧的本地缓存Jodd

 
       说到缓存,大家容易想到memcached和redis,它们大名鼎鼎,但都是远程缓存,需要通过TCP网络访问。
 
       这些缓存服务器本身性能很好,但不管性能再怎么好,也要通过网络访问,肯定不如本地直接访问内存快。
 
       说到本地缓存,大家最常用的是google的guava库,这个库也非常好用,但它有一个问题,就是一个内存管理服务只能设置一个过期时间,这对于需要给每一个KV对都要设置过期时间的需求就带来了麻烦,须知,memcached和redis都是可以给每一个KV对设置过期时间的。
 
       这里介绍另外一个Java库来解决这个问题——Jodd库。
 
       先上代码:
 
import jodd.cache.Cache;
 
import jodd.cache.LRUCache;
 
 
 
public class Testor {
 
   
 
    private static final int CACHE_SIZE = 1024*1024;
 
    public static void main(String[] args) {
 
      
 
       Cache<String,String> cacheService = new LRUCache<String,String>(CACHE_SIZE);
 
      
 
       String testKey = "k1";
 
      
 
       cacheService.put(testKey, "v1",1000);
 
      
 
       System.out.println(cacheService.get(testKey));
 
      
 
       try {
 
           Thread.sleep(1010);
 
       } catch (InterruptedException e) {
 
           // TODO Auto-generatedcatch block
 
           e.printStackTrace();
 
       }
 
      
 
       System.out.println(cacheService.get(testKey));
 
 
 
    }
 
 
 
}
 
 
 
    该库的使用很简单,也没有guava库的功能强大,但在某些时候很管用。有如下的一些缓存类可供使用:
 
    FIFOCache   –先进先销毁
 
       LFUCache    –使用次数最少的先销毁
 
       LRUCache    –最近最少使用的先销毁
 
       TimedCache  –不设置缓存大小,按时间过期
补充:综合编程 , 其他综合 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,