@Component public class CacheManager extends Object
缓存管理器-提供redis缓存+二级缓存的管理
| 限定符和类型 | 字段和说明 |
|---|---|
protected static Map<String,com.github.benmanes.caffeine.cache.Cache<String,Object>> |
CACHE |
| 构造器和说明 |
|---|
CacheManager() |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
clearLocalCache(ClearLocalCacheDTO cacheDTO)
清除本地缓存-采取的是cacheAside模式-即执行方法再删除缓存
|
void |
clearRedisCache(ClearRedisCacheDTO cacheDTO,
org.springframework.data.redis.core.RedisTemplate redisTemplate)
清除本地缓存-采取的是cacheAside模式-即执行方法再删除缓存
|
<T> T |
getAndAddLocalCache(GetLocalCacheDTO<T> cacheDTO,
LocalCacheExecutor<T> cacheExecutor)
获取并且将结果添加到本地缓存-若本地缓存为空则执行目标方法-并将结果缓存到本地缓存
|
<T> T |
getAndAddRedisCache(GetRedisCacheDTO<T> cacheDTO,
RedisCacheExecutor<T> cacheExecutor,
org.springframework.data.redis.core.RedisTemplate<String,T> redisTemplate)
从redis中获取缓存,若redis缓存为空,则执行目标方法-并将其缓存到Redis缓存
|
<T> T |
getCache(GetLocalCacheDTO<T> getLocalCacheDTO,
GetRedisCacheDTO<T> getRedisCacheDTO,
org.springframework.data.redis.core.RedisTemplate<String,T> redisTemplate)
获取缓存-
1.
|
<T> T |
getCache(GetLocalCacheDTO<T> cacheDTO,
LocalCacheExecutor<T> cacheExecutor,
GetRedisCacheDTO<T> redisCacheDTO,
RedisCacheExecutor<T> redisCacheExecutor,
org.springframework.data.redis.core.RedisTemplate<String,T> redisTemplate)
获取缓存-先从内存缓存中获取缓存-若本地缓存不存在-则从redis中获取缓存
|
protected void |
log(CacheDTO cacheDTO,
String template,
Object... objects)
日志记录
|
protected boolean |
notNeedCache(CacheDTO cacheDTO)
判断是否需要缓存-返回为true需要缓存-否则不需要缓存
|
public void clearRedisCache(ClearRedisCacheDTO cacheDTO, org.springframework.data.redis.core.RedisTemplate redisTemplate)
清除本地缓存-采取的是cacheAside模式-即执行方法再删除缓存
cacheDTO - : 缓存的数据传输对象public void clearLocalCache(ClearLocalCacheDTO cacheDTO)
清除本地缓存-采取的是cacheAside模式-即执行方法再删除缓存
cacheDTO - : 缓存的数据传输对象public <T> T getCache(GetLocalCacheDTO<T> getLocalCacheDTO, GetRedisCacheDTO<T> getRedisCacheDTO, org.springframework.data.redis.core.RedisTemplate<String,T> redisTemplate)
T - : 返回缓存的对象getLocalCacheDTO - : 本地缓存数据传输对象getRedisCacheDTO - : redis缓存数据传输对象redisTemplate - : redis模板public <T> T getCache(GetLocalCacheDTO<T> cacheDTO, LocalCacheExecutor<T> cacheExecutor, GetRedisCacheDTO<T> redisCacheDTO, RedisCacheExecutor<T> redisCacheExecutor, org.springframework.data.redis.core.RedisTemplate<String,T> redisTemplate)
T - : 返回缓存的对象cacheDTO - : 本地缓存数据传输对象cacheExecutor - : 本地缓存执行器redisCacheDTO - : redis缓存数据传输对象redisCacheExecutor - : redis缓存执行器redisTemplate - : redis模板public <T> T getAndAddLocalCache(GetLocalCacheDTO<T> cacheDTO, LocalCacheExecutor<T> cacheExecutor)
获取并且将结果添加到本地缓存-若本地缓存为空则执行目标方法-并将结果缓存到本地缓存
cacheDTO - cacheExecutor - public <T> T getAndAddRedisCache(GetRedisCacheDTO<T> cacheDTO, RedisCacheExecutor<T> cacheExecutor, org.springframework.data.redis.core.RedisTemplate<String,T> redisTemplate)
从redis中获取缓存,若redis缓存为空,则执行目标方法-并将其缓存到Redis缓存
cacheDTO - cacheExecutor - redisTemplate - protected void log(CacheDTO cacheDTO, String template, Object... objects)
日志记录
cacheDTO - : 缓存的数据传输对象template - : 日志的模板objects - : 需要打印日志的对象protected boolean notNeedCache(CacheDTO cacheDTO)
判断是否需要缓存-返回为true需要缓存-否则不需要缓存
cacheDTO - Copyright © 2022. All rights reserved.