Console.WriteLine("连接失败!"+ Spid.ToString());
LogHelper.WriteLog(Enumerate.CodeType.Code001, Enumerate.NLogType.Error, "连接失败!"+ Spid.ToString());
}
Random rd = new Random();
rh.StringSet("dataKey_" + rd.Next(0, 120).ToString(), "model", new TimeSpan?(TimeSpan.FromDays(1.0)));
}
catch (Exception ex)
{
if(ex.Message.Contains("No connection") || ex.StackTrace.Contains("No connection"))
{
string msg = string.Format("Redis设置Key-Value时异常。spid:" + Spid.ToString());
LogHelper.WriteLog(Enumerate.CodeType.Code001, Enumerate.NLogType.Error, msg, ex);
}
}
}`
our team find some way to reproduce "No connection" exception。
write a timer,loop every second to send command,just like:
`private static void OnTimedEvent(Object source, ElapsedEventArgs e)
{
try
{
if (!rh.IsConnected())
{
use cmd open about 100 exe,like “start D:\Debug\redistest.exe”;
open redis-cli.exe,connect to server,then send command “client pause 5000”,pause 5 seconds or longer,After 5 seconds, some programs cannot reconnect normally, and continue to report connection failure, and the exception message is “No connection “
@NickCraver