using Microsoft.Extensions.Caching.Distributed; using Nop.Core.Caching; using Nop.Core.Configuration; using Nop.Core.Infrastructure; namespace Nop.Services.Caching; public partial class MemoryDistributedCacheManager : DistributedCacheManager { #region Ctor public MemoryDistributedCacheManager(AppSettings appSettings, IDistributedCache distributedCache, ICacheKeyManager cacheKeyManager, IConcurrentCollection concurrentCollection) : base(appSettings, distributedCache, cacheKeyManager, concurrentCollection) { } #endregion /// /// Clear all cache data /// /// A task that represents the asynchronous operation public override async Task ClearAsync() { foreach (var key in _localKeyManager.Keys) await RemoveAsync(key, false); ClearInstanceData(); } /// /// Remove items by cache key prefix /// /// Cache key prefix /// Parameters to create cache key prefix /// A task that represents the asynchronous operation public override async Task RemoveByPrefixAsync(string prefix, params object[] prefixParameters) { var keyPrefix = PrepareKeyPrefix(prefix, prefixParameters); foreach (var key in RemoveByPrefixInstanceData(keyPrefix)) await RemoveAsync(key, false); } }