/// <summary> /// Clears cache server with given clear criteria /// </summary> /// <param name="criteria">A query to filter cache keys, works with redis search characters</param> public void ClearCache(CacheClearQuery criteria) { var db = CacheEndpoint.GetDatabase(); foreach (var endPoint in CacheEndpoint.GetEndPoints()) { var server = CacheEndpoint.GetServer(endPoint); foreach (var redisKey in server.Keys(pattern: criteria.Pattern)) { Delete(db, new CacheKey(redisKey)); } } }
public void ClearCache(CacheClearQuery criteria) { var keyList = Cache.Select(f => f.Key); if (criteria != null && !string.IsNullOrEmpty(criteria.Pattern)) { var r = new Regex(criteria.Pattern, RegexOptions.None, new TimeSpan(0, 0, 1)); keyList = keyList.Where(x => r.IsMatch(x)); } keyList = keyList.ToArray(); foreach (string key in keyList) { Cache.Remove(key); } }