我在单个计算机查询缓存的高负载情况下使用Azure Redis缓存。这台机器每秒钟大概获得并设置约20个物品。在白天这增加,在夜间这是少。为什么连接到Azure Redis Cache如此之高?
到目前为止,事情一直很好。今天,我意识到“连接客户端”的指标非常高,尽管我只有1个客户端只是不断获取和设置项目。这里是我的意思是度量的截图:
我的代码如下所示:
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));
}
我没有创建这个类的多个实例,所以这不是问题。也许我误解了连接度量标准,他们的真正含义是我访问缓存的次数,但是,在我看来,这并不合理。任何想法,或任何有类似问题的人?
谢谢JonCole,这一直是问题。更新到1.0.333解决了这个问题。 – Christian 2014-09-26 07:30:17