import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import org.springframework.beans.factory.InitializingBean;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
public class TestCacheService implements InitializingBean {
private Cache<String,String> localCache;
public String getKey(String key) throws ExecutionException {
//在缓存中获取
return localCache.get(key, () -> {
//没有值时调用
return initCache(key);
});
}
private String initCache(String key){
Map<String,String> map=new HashMap<>();
map.put("name","fsk");
localCache.putAll(map);
return map.get(key);
}
//设置大小 和失效策略
@Override
public void afterPropertiesSet() throws Exception {
CacheBuilder.newBuilder().maximumSize(1000).expireAfterWrite(30, TimeUnit.SECONDS)
.removalListener(record-> System.out.println("缓存移除"+record.toString())).build();
}
}
关于缓存一点点使用
最新推荐文章于 2024-07-12 22:49:43 发布