編寫接口Cache
T get(String key,Class?clazz);
void ?set(String key,T t);
編寫CacheService 接口
Cache create(String moduleName,int expire);
抽象類AbstractCacheService
這一層再封裝一些create方法,讓每個(gè)項(xiàng)目名字作為modulename的一部分
兩種緩存方案
1.LocalCacheService繼承AbstractCacheService
CacheBuilder.newBuilder()
.expireAfterWrite(this.expire,TimeUnit.SECONDS)
.build();
2. RedisCacheService 繼承AbstractCacheService
讀數(shù)據(jù) 寫數(shù)據(jù) 都用到com.esotericsoftware.kryo.Kryo ,redis.clients.jedis.Jedis
提到一點(diǎn) 這里的api用到了 java8? Supplier 意思是 ?可以從這里返回值
Function?fn 這個(gè)是 執(zhí)行邏輯,返回值
kryo是序列化 用的
概念就是,當(dāng)鍵沒有值的時(shí)候,就從另外的方案獲取值。然后存儲(chǔ)到緩存