Политика истечения срока действия кэша Membase - PullRequest
0 голосов
/ 21 марта 2012

Я добавляю значение в кэш-память couchbase с истечением 1 секунды, однако оно истекло более чем за 20 секунд. Что такое политика истечения срока действия кеш-памяти в мембране?

Вот мой код

    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;
    }

1 Ответ

0 голосов
/ 25 марта 2012

Прежде всего, если вы установите срок действия чего-либо через 1 секунду, вы не сможете получить его из Membase, если попросите об этом более чем через 1 секунду. Я предполагаю, что причина, по которой вы видите, что истечение срока действия происходит позже, заключается в том, что вы указываете абсолютное время, а время на вашем сервере и клиенте отличается. Если ваш сервер отстает от клиента на 20 секунд, я бы ожидал увидеть такое поведение. Попробуйте просто установить время истечения 1, и тогда вы увидите, что все происходит правильно. Для значений менее 30 дней время является относительным. Более 30 дней абсолютное время.

Внутри Membase, когда срок действия элемента истек, он не удаляется сразу. Существует задача истечения срока действия, которая запускается по умолчанию каждые 1 час, перебирает все ключи и удаляет просроченные. Если у вас много ключей с истекающим сроком действия, вы можете настроить выполнение задачи истечения срока действия чаще. Другой способ истечения срока действия элементов - заполнение кэша Membase и удаление элементов из памяти. Этой задачей также можно удалить просроченные элементы.

...