public override TimeSpan BaseGetExpiration(string cacheKey) { TimeSpan timeSpan = _memoryProvider.GetExpiration(cacheKey); if (timeSpan == TimeSpan.Zero) { timeSpan = _redisProvider.GetExpiration(cacheKey); } return(timeSpan); }
public override CacheValue <T> BaseGet <T>(string cacheKey, Func <T> dataRetriever, TimeSpan expiration) { CacheValue <T> cacheValue = _memoryProvider.Get <T>(cacheKey); if (cacheValue.IsNull) { cacheValue = _redisProvider.Get <T>(cacheKey); if (cacheValue.HasValue) { var expration = _redisProvider.GetExpiration(cacheKey); if (expration != null && expration != TimeSpan.Zero) { _memoryProvider.Set <T>(cacheKey, cacheValue.Value, expration); } } } if (cacheValue.HasValue) { return(cacheValue); } T data = dataRetriever(); if (data != null) { _memoryProvider.Set <T>(cacheKey, data, expiration); _redisProvider.Set <T>(cacheKey, data, expiration); return(new CacheValue <T>(data, true)); } return(new CacheValue <T>(data, false)); }