mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-26 20:16:15 +08:00
* #8828: Expose Redis API to clear multiple keys using wildcard syntax * #8828: Rename IRedisCacheStorageProvider to ICacheStorageProviderWithKeyPrefix * Moving ICacheStorageProviderWithKeyPrefix to Orchard.Caching --------- Co-authored-by: Benedek Farkas <benedek.farkas@lombiq.com>
This commit is contained in:
@@ -8,4 +8,8 @@ namespace Orchard.Caching.Services {
|
|||||||
void Remove(string key);
|
void Remove(string key);
|
||||||
void Clear();
|
void Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface ICacheStorageProviderWithKeyPrefix : ICacheStorageProvider {
|
||||||
|
void Clear(string key);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -9,10 +9,9 @@ using StackExchange.Redis;
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace Orchard.Redis.Caching {
|
namespace Orchard.Redis.Caching {
|
||||||
|
|
||||||
[OrchardFeature("Orchard.Redis.Caching")]
|
[OrchardFeature("Orchard.Redis.Caching")]
|
||||||
[OrchardSuppressDependency("Orchard.Caching.Services.DefaultCacheStorageProvider")]
|
[OrchardSuppressDependency("Orchard.Caching.Services.DefaultCacheStorageProvider")]
|
||||||
public class RedisCacheStorageProvider : Component, ICacheStorageProvider {
|
public class RedisCacheStorageProvider : Component, ICacheStorageProviderWithKeyPrefix {
|
||||||
public const string ConnectionStringKey = "Orchard.Redis.Cache";
|
public const string ConnectionStringKey = "Orchard.Redis.Cache";
|
||||||
|
|
||||||
private readonly ShellSettings _shellSettings;
|
private readonly ShellSettings _shellSettings;
|
||||||
@@ -61,6 +60,10 @@ namespace Orchard.Redis.Caching {
|
|||||||
_connectionMultiplexer.KeyDeleteWithPrefix(GetLocalizedKey("*"));
|
_connectionMultiplexer.KeyDeleteWithPrefix(GetLocalizedKey("*"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Clear(string key) {
|
||||||
|
_connectionMultiplexer.KeyDeleteWithPrefix(GetLocalizedKey($"{_shellSettings.Name}:{key}"));
|
||||||
|
}
|
||||||
|
|
||||||
private string GetLocalizedKey(string key) {
|
private string GetLocalizedKey(string key) {
|
||||||
return _shellSettings.Name + ":Cache:" + key;
|
return _shellSettings.Name + ":Cache:" + key;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user