我经常得到ServiceStack.Redis:无法连接: sPort: 0或ServiceStack.Redis:无法连接: sPort: 50071 (或另一个端口号)。
这似乎发生在我们的网站更繁忙的时候。Redis本身看起来很好,CPU或内存的使用没有真正的增加。
我正在使用连接池,并试图更改超时值,但没有成功。
public sealed class RedisConnection
{
// parameter values are:
// Config.Settings.RedisPoolSize = 10000
// Config.Settings.RedisPoolTimeoutSeconds = 2
// Config.Settings.RemoteCacheServerName = 192.168.10.12
private static readonly PooledRedisClientManager instance
= new PooledRedisClientManager(Config.Settings.RedisPoolSize,
Config.Settings.RedisPoolTimeoutSeconds,
new string[] { Config.Settings.RemoteCacheServerName })
{
ConnectTimeout = 1500
};
static RedisConnection()
{
}
public static PooledRedisClientManager Instance
{
get
{
return instance;
}
}
}
用法如下:
public sealed class Caching
{
public static T GetCacheSingle<T>(string key)
{
using (var redisClient = RedisConnection.Instance.GetReadOnlyClient())
{
var value = redisClient.Get<byte[]>(key);
....
}
}
}
发布于 2014-01-25 02:36:51
这是由于Redis在Hyper-V上作为虚拟机托管的Ubuntu上运行的延迟问题造成的。
通过移动到物理Linux盒,我们将延迟降低了45%,从而解决了问题。
https://stackoverflow.com/questions/20384052
复制相似问题