谷歌开源框架Guava Cache实现本地缓存,封装API
一.Guava Cache基本介绍
github地址:https://github.com/google/guava/wiki/CachesExplained
全内存的本地缓存实现
⾼性能且功能丰富
线程安全,操作简单 (底层实现机制类似ConcurrentMap)
二.在pom.xml中添加相应的依赖
<!--guava依赖包--> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>19.0</version> </dependency>
三.封装api
private Cache<String,Object> cache = CacheBuilder.newBuilder() //设置缓存初始⼤⼩,应该合理设置,后续会扩容 .initialCapacity(10) //最⼤值 .maximumSize(100) //并发数设置 .concurrencyLevel(5) //缓存过期时间,写⼊后10分钟过期 .expireAfterWrite(600,TimeUnit.SECONDS) //统计缓存命中率 .recordStats() .build(); public Cache<String, Object> getcache() { return cache; } public void setcache(Cache<String, Object> cache) { this.cache = cache; }
四.serviceImpl中具体实现
@Autowired BaseCache baseCache; public List<Video> videoList() { try{ Object cacheObj = baseCache.getCache().get(CacheKeyManager.INDEX_VIDEO_LIST,()->{ List<Video> videoList = videoMapper.videoList(); return videoList; }); if(cacheObj instanceof List){ List<Video> videoList = (List<Video>)cacheObj; return videoList; } }catch (Exception e){ e.printStackTrace(); } return null; }

浙公网安备 33010602011771号