package com.fh.interview.cache;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import java.util.concurrent.Callable;
/**
* 缓存相关
* FIFO:First In First Out,先进先出。判断被存储的时间,离目前最远的数据优先被淘汰。
* LRU:Least Recently Used,最近最少使用。判断最近被使用的时间,目前最远的数据优先被淘汰。
* LFU:Least Frequently Used,最不经常使用。在一段时间内,数据被使用次数最少的,优先被淘汰。
*
* 本地缓存可以使用HashMap,ConcurrentHashMap,LinkedHashMap(非线程安全的removeEldestEntry(缓存淘汰))
*
* 可以使用EhCache
* 支持堆内,堆外,磁盘缓存
* 堆内、堆外、磁盘三级缓存。
可按照缓存空间容量进行设置。
按照时间、次数等过期策略。
*
* @author
* @create 2018-06-09 下午4:34
**/
public class CacheDemo {
public static void main(String[] args)throws Exception {
//Guava --只支持堆内缓存
Cache<Object,Object> cache = CacheBuilder.newBuilder().maximumSize(1000).build();
cache.get("", new Callable<Object>() {
@Override
public Object call() throws Exception {
return null;
}
});
}
}