缓存是用于提升程序性能的重要手段之一,接下来我们一起来看看如何在在ZKEACMS(纸壳CMS)中的缓存机制,以级如何使用缓存。

ZKEACMS(纸壳CMS)中使用CacheManager作为缓存的基础。

缓存注册

在使用缓存之前,需要对目标缓存类型先进行注册。注册的方式很简单,可以在插件类(XXXPlug.cs)或者在ZKEACMS.Builder.cs(如果需要)中注册:

public override void ConfigureServices(IServiceCollection serviceCollection)
{
    serviceCollection.ConfigureCache<IEnumerable<WidgetBase>>();
}

使用缓存

注册过后就可以使用缓存了:

public WidgetBasePartService(ICacheManager<IEnumerable<WidgetBase>> pageWidgetCacheManage)
{
    _pageWidgetCacheManage = pageWidgetCacheManage;
}

ICacheManager<T>接口的方法使用比较简单:

namespace Easy.Cache
{
    public interface ICacheManager<T>
    {   
        bool Add(string key, T value);
        bool Add(string key, T value, string region);
        bool Exists(string key);
        bool Exists(string key, string region);
        T Get(string key);
        T Get(string key, string region);
        T GetOrAdd(string key, string region, Func<string, string, T> valueFactory);
        T GetOrAdd(string key, Func<string, T> valueFactory);
        T GetOrAdd(string key, string region, T value);
        T GetOrAdd(string key, T value);
        void Remove(string key);
        void ClearRegion(string region);
        void Clear();
    }
}