Информация Redis не обновляется после удаления клиента

Я использую ServiceStack.Redis версия 4.0.56 читать и отображать информацию о сервере Redis, как показано в классе ниже:

using ServiceStack.Redis

class Test
{
    private IRedisClientManager clientManager;

    public Test()
    {
        clientManager = new PooledRedisClientManager(10, 10, connectionString);
    }

    public IDictionary<string, string> GetInfo()
    {
         var redisClient = redisClientManager.GetClient();
         var info = redisClient.Info;

         // If commented out, all info values are updated (i.e. uptime, keys etc)
         redisClient.Dispose();

         return info;
    }
}

Проблема заключается в том, что, как только клиент распорядится (согласно передовому опыту), Info собственностью redisClient всегда возвращает старые значения, даже если я получаю новый экземпляр клиента, как показано в GetInfo метод выше.

Когда я опускаю redisClient.Dispose вызов, Info значения все обновляются.

Что я делаю неправильно? Спасибо!

1 ответ

Решение

После публикации этой проблемы в Github члены команды ServiceStack быстро ответили.

Причина была в том, что RedisClient кеширует INFO команда и не обновляет данные при последующих вызовах или после утилизации и использования их с менеджером клиентов.

Это было исправлено в ServiceStack.Redisv4.0.59 ,

Другие вопросы по тегам