1. 程式人生 > >利用guava來實現本地的cache緩存

利用guava來實現本地的cache緩存

end 時間 ini pan ogl 代碼 ret print get

guava是谷歌提供的工具類,功能強大,舉個例子,我我想把數據存到本地,該咋辦?我們想到的只有是全局的Map和session中。如果我們想實現這個容器的大小呢?時間呢?不好搞吧。
guava就有這樣的功能。話不多說 上code

<dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>20.0</version>
</dependency>

TokenCache.java
package com.mmall.common;

import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import lombok.extern.slf4j.Slf4j;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;

/** * Created by 敲代碼的卡卡羅特 * on 2018/3/11 16:52. */ @Slf4j public class TokenCache { public static final String TOKEN_PREFIX="token_"; private static LoadingCache<String,String> loadingCache = CacheBuilder.newBuilder().initialCapacity(1000).maximumSize(10000). expireAfterAccess(
12, TimeUnit.HOURS).build(new CacheLoader<String, String>() { @Override public String load(String s) throws Exception { return "null"; } }); public static void setKey(String key,String val){ loadingCache.put(key,val); } public static String getKey(String key){ String val=null; try { val = loadingCache.get(key); } catch (ExecutionException e) { e.printStackTrace(); log.error("緩存中沒有該key"); } return val; } }

 

利用guava來實現本地的cache緩存