2016-06-09 1 views
1

Я использую ServiceStack.Redis версии 4.0.56 для чтения и отображения информации о сервере Redis, как показано ниже класса:информация 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; 
    } 
} 

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

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

Что я делаю неправильно? Благодаря!

ответ

1

После размещения этого as an issue in Github, члены команды ServiceStack были оперативно реагировать.

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

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