public virtual async Task Set( string key, object value, CachePolicyItem cachePolicy ) { //清除一级缓存,写入二级缓存 await L1Cache.Remove( key ); await L2Cache.Set( key, value, cachePolicy ); //后台写入一级缓存。 Background( L1Cache.Set( key, value, cachePolicy ) ); }
/// <summary> /// 根据现有缓存策略创建 MemoryCache 的缓存策略 /// </summary> /// <param name="cachePolicy">缓存策略</param> /// <returns>MemoryCache 的缓存策略</returns> private CacheItemPolicy CreateCacheItemPolicy( CachePolicyItem cachePolicy ) { return new CacheItemPolicy { AbsoluteExpiration = cachePolicy.Expires, Priority = cachePolicy.Priority.IsHighPriority ? CacheItemPriority.NotRemovable : CacheItemPriority.Default, }; }
/// <summary> /// 设置缓存值 /// </summary> /// <param name="key">缓存键</param> /// <param name="value">缓存值</param> /// <param name="cachePolicy">缓存策略</param> public void Set( string key, object value, CachePolicyItem cachePolicy ) { _host.Set( new System.Runtime.Caching.CacheItem( key, value ), CreateCacheItemPolicy( cachePolicy ) ); }
public Task Set( string key, object value, CachePolicyItem cachePolicy ) { provider.Set( key, value, cachePolicy ); return Task.FromResult( (object) null ); }
void ICacheProvider.Set( string cacheKey, object value, CachePolicyItem cachePolicy ) { }
public async Task Set( string cacheKey, object value, CachePolicyItem cachePolicy ) { await _database.StringSetAsync( cacheKey, _serializer.Serialize( value ), cachePolicy.Expires - DateTime.UtcNow ); }
/// <summary> /// 设置缓存策略对象 /// </summary> /// <param name="cacheKey"></param> /// <param name="cachePolicy"></param> public void SetCachePolicy( string cacheKey, CachePolicyItem cachePolicy ) { var filepath = Path.Combine( CurrentDirectory, cacheKey + ".policy" ); using ( var writer = new StreamWriter( new FileStream( filepath, FileMode.Create, FileAccess.Write, FileShare.Delete ), Encoding.UTF8 ) ) { writer.Write( cachePolicy.ToString() ); } }
void ICacheProvider.Set(string key, object value, CachePolicyItem cachePolicy) { client.Store(StoreMode.Set, key, value, cachePolicy.Expires); }
/// <summary> /// 设置一个缓存 /// </summary> /// <param name="cacheKey">缓存键</param> /// <param name="value">缓存值</param> /// <param name="cachePolicy">缓存策略</param> public async Task Set( string cacheKey, object value, CachePolicyItem cachePolicy ) { _manager.SetCachePolicy( cacheKey, cachePolicy ); var stream = new MemoryStream(); _serializer.Serialize( stream, value ); await _manager.WriteStream( cacheKey, stream ); }
public async Task Set(string cacheKey, object value, CachePolicyItem cachePolicy) { await _database.StringSetAsync(cacheKey, _serializer.Serialize(value), cachePolicy.Expires - DateTime.UtcNow); }
async Task IAsyncCacheProvider.Set( string cacheKey, object value, CachePolicyItem cachePolicy ) { var provider = await GetCacheProvider( cacheKey ); await provider.Set( cacheKey, value, cachePolicy ); }
void ICacheProvider.Set( string key, object value, CachePolicyItem cachePolicy ) { client.Store( StoreMode.Set, key, value, cachePolicy.Expires ); }