Sto utilizzando Azure Redis Cache in uno scenario di carico elevato per una singola macchina che interroga la cache. Questa macchina ottiene e imposta circa 20 articoli al secondo. Durante il giorno questo aumenta, durante la notte questo è meno.Perché le connessioni ad Azure Redis Cache sono così elevate?
Finora, le cose hanno funzionato bene. Oggi mi sono reso conto che la metrica di "Connected Clients" è estremamente alta, anche se ho solo 1 cliente che ottiene e ottiene costantemente gli elementi. Ecco uno screenshot della metrica voglio dire:
Il mio codice è simile al seguente:
public class RedisCache<TValue> : ICache<TValue>
{
private IDatabase cache;
private ConnectionMultiplexer connectionMultiplexer;
public RedisCache()
{
ConfigurationOptions config = new ConfigurationOptions();
config.EndPoints.Add(GlobalConfig.Instance.GetConfig("RedisCacheUrl"));
config.Password = GlobalConfig.Instance.GetConfig("RedisCachePassword");
config.ConnectRetry = int.MaxValue; // retry connection if broken
config.KeepAlive = 60; // keep connection alive (ping every minute)
config.Ssl = true;
config.SyncTimeout = 8000; // 8 seconds timeout for each get/set/remove operation
config.ConnectTimeout = 20000; // 20 seconds to connect to the cache
connectionMultiplexer = ConnectionMultiplexer.Connect(config);
cache = connectionMultiplexer.GetDatabase();
}
public virtual bool Add(string key, TValue item)
{
return cache.StringSet(key, RawSerializationHelper.Serialize(item));
}
io non sto creando più di un'istanza di questa classe, quindi questo non è il problema. Forse non conosco la metrica delle connessioni e quello che vogliono dire è il numero di volte in cui accedo al cache, tuttavia, a mio avviso, non avrebbe molto senso. Qualche idea o qualcuno con un problema simile?
Grazie JonCole, questo è stato il problema. Un aggiornamento a 1.0.333 risolve il problema. – Christian