Java 实现缓存的三种方式
在Java中实现缓存的方式主要有以下三种:
- 使用
HashMap
:
import java.util.HashMap;
public class Cache {
private HashMap<String, Object> cache = new HashMap<String, Object>();
public Object get(String key) {
return cache.get(key);
}
public void put(String key, Object value) {
cache.put(key, value);
}
}
- 使用
Guava Cache
:
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
public class GuavaCache {
private LoadingCache<String, Object> cache;
public GuavaCache() {
cache = CacheBuilder.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10, TimeUnit.MINUTES)
.build(new CacheLoader<String, Object>() {
@Override
public Object load(String key) throws Exception {
// 自定义加载逻辑
return null;
}
});
}
public Object get(String key) throws ExecutionException {
return cache.get(key);
}
}
- 使用
Ehcache
:
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
public class Ehcache {
private Cache cache;
public Ehcache() {
CacheManager manager = CacheManager.create();
cache = manager.getCache("myCache");
}
public Object get(String key) {
Element element = cache.get(key);
return element != null ? element.getObjectValue() : null;
}
public void put(String key, Object value) {
cache.put(new Element(key, value));
}
}
这三种方式各有优势,HashMap
是最简单的实现,但缺乏缓存过期、清理等复杂策略的支持;Guava Cache
提供了强大的缓存管理功能,而Ehcache
则是一个独立的缓存框架,支持分布式缓存、缓存节点管理等高级特性。根据具体需求选择合适的缓存实现。
评论已关闭