예제 #1
0
        /// <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));
                }
            }
        }
예제 #2
0
        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);
            }
        }