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 ) );
 }
Example #4
0
 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 );
 }
Example #7
0
    /// <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);
 }
Example #9
0
    /// <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 );

    }
Example #10
0
 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 );
 }
Example #12
0
 void ICacheProvider.Set( string key, object value, CachePolicyItem cachePolicy )
 {
   client.Store( StoreMode.Set, key, value, cachePolicy.Expires );
 }