使用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); } }
好的,基于上面几步,本地缓存工具类已经可以使用了~