import BLOG from '@/blog.config' import FileCache from './local_file_cache' import MemoryCache from './memory_cache' import RedisCache from './redis_cache' /** * 为减少频繁接口请求,notion数据将被缓存 * @param {*} key * @returns */ export async function getDataFromCache(key, force) { if (enableCacheInVercel || BLOG.ENABLE_CACHE || force) { const dataFromCache = await getApi().getCache(key) if (!dataFromCache || JSON.stringify(dataFromCache) === '[]') { return null } // console.trace('[API-->>缓存]:', key, dataFromCache) return dataFromCache } else { return null } } export async function setDataToCache(key, data, customCacheTime) { if (!enableCacheInVercel || !data) { return } // console.trace('[API-->>缓存写入]:', key) await getApi().setCache(key, data, customCacheTime) } export async function delCacheData(key) { if (!JSON.parse(BLOG.ENABLE_CACHE)) { return } await getApi().delCache(key) } /** * 缓存实现类 * @returns */ function getApi() { if (BLOG.REDIS_URL) { return RedisCache } else if (process.env.ENABLE_FILE_CACHE) { return FileCache } else { return MemoryCache } }