2012-03-21 2 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 일 이상 동안 시간은 절대적입니다.

항목이 만료되면 Membase가 즉시 제거되지 않습니다. 만료 작업은 기본적으로 1 시간마다 실행되며 모든 키를 반복하고 만료 된 작업을 삭제합니다. 만료 된 키가 많으면 만료 작업을 더 자주 실행하도록 설정할 수 있습니다. 항목이 만료 될 수있는 또 다른 방법은 Membase 캐시가 가득 차서 항목이 메모리에서 제거되는 경우입니다. 만료 된 항목은이 작업으로 삭제할 수도 있습니다.

관련 문제