csredis icon indicating copy to clipboard operation
csredis copied to clipboard

为什么用hostname并发情况下会崩溃,而直接用ip就不会。停止redis服务hostname方式还无法重连,用IP却能恢复。

Open youweimao opened this issue 4 years ago • 1 comments

简单的测试代码。 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); } }

youweimao avatar Jan 30 '21 07:01 youweimao

hostname 多了一步 dns 解析,并发要看解析速度了,频率太高有可能会被服务器拒绝连接

2881099 avatar Jan 30 '21 08:01 2881099