使用Guava实现本地缓存
1、首先,导入pom依赖
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.1-jre</version>
</dependency>
2、创建一个本地缓存的接口 LocalCacheService,用于定义缓存方法
public interface LocalCacheService<K, V> {
/**
* 存储数据
*
* @param key
* @param value
*/
void put(K key, V value);
/**
* 如果存在就获取
*
* @param key
* @return
*/
V getIfPresent(Object key);
/**
* 删除数据
*
* @param key
*/
void delete(Object key);
}
3、之后创建缓存工厂 LocalCacheFactory ,方便拓展(也可以直接创建实现类 看自己需要)
public class LocalCacheFactory {
/**
* 获取本地缓存数据
* @return
* @param <K> key
* @param <V> value
*/
public static <K, V> Cache<K, V> getLocalCache(){
//这里的初始容量、过期时间、过期单位 也可以通过传参数的形式(或者再写几个有入参的方法),更具使用化场景
return CacheBuilder.newBuilder().initialCapacity(20).concurrencyLevel(5).expireAfterWrite(10, TimeUnit.SECONDS).build();
}
}
4、创建本地缓存接口的实现类
@Service
public class GuavaLocalCacheService<K, V> implements LocalCacheService<K, V> {
//从工厂获取缓存对象
private final Cache<K, V> cache = LocalCacheFactory.getLocalCache();
@Override
public void put(K key, V value) {
cache.put(key, value);
}
@Override
public V getIfPresent(Object key) {
return cache.getIfPresent(key);
}
@Override
public void delete(Object key) {
cache.invalidate(key);
}
}
好的,基于上面几步,本地缓存工具类已经可以使用了~