Информация 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.Redis
v4.0.59
,