/// <summary> /// 初始化一个<see cref="DefaultMemcachedCacheProvider"/>类型的实例 /// </summary> /// <param name="memcachedClient">Memcached客户端</param> /// <param name="options">Memcached选项</param> /// <param name="log">日志</param> public DefaultMemcachedCacheProvider(IMemcachedClient memcachedClient, IOptionsMonitor <MemcachedOptions> options, Bing.Logs.ILog log = null) { this._memcachedClient = memcachedClient; this._options = options.CurrentValue; this._log = log ?? NullLog.Instance; this.CacheStatsInfo = new CacheStatsInfo(); }
/// <summary> /// 初始化一个<see cref="DefaultInMemoryCacheProvider"/>类型的实例 /// </summary> /// <param name="cache">内存缓存</param> /// <param name="options">内存缓存选项</param> /// <param name="log">日志</param> public DefaultInMemoryCacheProvider(IMemoryCache cache, IOptionsMonitor <InMemoryOptions> options, ILog log = null) { this._cache = cache; this._options = options.CurrentValue; this._log = log ?? NullLog.Instance; this._cacheKeys = new ConcurrentHashSet <string>(); this.CacheStatsInfo = new CacheStatsInfo(); }
/// <summary> /// 初始化一个<see cref="DefaultRedisCacheProvider"/>类型的实例 /// </summary> /// <param name="dbProvider">Redis数据库提供程序</param> /// <param name="serializer">缓存序列化器</param> /// <param name="options">Redis选项</param> /// <param name="log">日志</param> public DefaultRedisCacheProvider(IRedisDatabaseProvider dbProvider, ICacheSerializer serializer, IOptionsMonitor <RedisOptions> options, ILog log = null) { Check.NotNull(dbProvider, nameof(dbProvider)); Check.NotNull(serializer, nameof(serializer)); this._dbProvider = dbProvider; this._serializer = serializer; this._options = options.CurrentValue; this._log = log ?? NullLog.Instance; this._cache = _dbProvider.GetDatabase(); this._servers = _dbProvider.GetServerList(); this.CacheStatsInfo = new CacheStatsInfo(); }
/// <summary> /// 初始化一个<see cref="DefaultRedisCacheProvider"/>类型的实例 /// </summary> /// <param name="name">名称</param> /// <param name="dbProviders">Redis数据库提供程序列表</param> /// <param name="serializer">缓存序列化器</param> /// <param name="options">Redis选项</param> /// <param name="log">日志</param> public DefaultRedisCacheProvider(string name, IEnumerable <IRedisDatabaseProvider> dbProviders, ICacheSerializer serializer, IOptionsMonitor <RedisOptions> options, ILog log = null) { Check.NotNullOrEmpty(dbProviders, nameof(dbProviders)); Check.NotNull(serializer, nameof(serializer)); this._dbProvider = dbProviders.FirstOrDefault(x => x.DbProviderName.Equals(name)); this._serializer = serializer; this._options = options.CurrentValue; this._log = log ?? NullLog.Instance; this._cache = _dbProvider.GetDatabase(); this._servers = _dbProvider.GetServerList(); this.CacheStatsInfo = new CacheStatsInfo(); this.Name = name; }