csredis
csredis copied to clipboard
为什么用hostname并发情况下会崩溃,而直接用ip就不会。停止redis服务hostname方式还无法重连,用IP却能恢复。
简单的测试代码。 host redis 127.0.0.1
不同构造字符串 hostname=>$"redis:6379,defaultDatabase=0,poolsize=2000,ssl=false,preheat=false,writeBuffer=10240"; ip =>$"127.0.0.1:6379,defaultDatabase=0,poolsize=2000,ssl=false,preheat=false,writeBuffer=10240";
Parallel.For(0, 100_0000, new ParallelOptions() { MaxDegreeOfParallelism = 10000 }, (i) =>
{
Console.WriteLine(i);
try
{
Test(key);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
});
static void Test(string key) { try { Console.WriteLine(key); RedisHelper.Set(key, DateTime.Now.ToString()); RedisHelper.Get(key); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
hostname 多了一步 dns 解析,并发要看解析速度了,频率太高有可能会被服务器拒绝连接