2012-03-21 12 views
0

有効期限が1秒のcouchbaseキャッシュに値を追加しますが、有効期限は20秒を超えています。 membaseのキャッシュ有効期限ポリシーとは何ですか?あなたは、あなたが1秒以上後でそれを求める場合はMemBase値からそれを取得することができなくなります1秒で期限切れに何かを設定した場合Membaseキャッシュ有効期限ポリシー

はここで、私のコード

public string TestCache() 
    { 
     String spoon = null; 
     using (var client = new CouchbaseClient()) 
     { 

      spoon=client.Get<string>("Spoon"); 
      if(string.IsNullOrEmpty(spoon)) 
      { 
       client.Store(StoreMode.Set, 
          "Spoon", 
          "Hello, Couchbase! Cache data is" + DateTime.Now.ToString(), 
          TimeSpan.FromSeconds(1)); 
      } 

      spoon = client.Get<string>("Spoon"); 
     } 

     return string.IsNullOrEmpty(spoon) 
     ? "Can not get data from cache" 
     : "Data from cache: " + spoon; 
    } 

答えて

0

まずオフになっています。私は、あなたが期限切れを見ている理由は、あなたが絶対的な時間を指定していることと、あなたのサーバーとクライアントの時間が異なることを推測します。あなたのサーバーがクライアントの20秒遅れているなら、私はこの種の動作を期待しています。有効期限を1に設定してみると、正しいことが起こるはずです。 30日未満の値の場合、時間は相対的です。 30日以上は絶対的な時間です。

アイテムが期限切れになったとき、すぐに削除されません。デフォルトでは1時間ごとに実行され、すべてのキーに対して繰り返し実行され、期限切れのタスクを削除する有効期限タスクがあります。期限切れのキーがたくさんある場合は、より多く実行されるように期限切れタスクを設定することができます。アイテムが期限切れになる別の方法は、Membaseキャッシュがいっぱいになり、アイテムがメモリから追い出される場合です。期限切れのアイテムもこのタスクで削除できます。

関連する問題