首页 > 解决方案 > 为什么通过经典方式在 C# 中以编程方式 ping Redis Sercer 不起作用?

问题描述

所以我在本地安装了Redis。如果我从 cmd 运行命令:

redis-cli ping

我得到响应“PONG”——假设我已经打开(双击 redis-server.exe)服务器。

到目前为止,一切都很好。让我们摆脱这种手动工作,让我们在 C# 中以编程方式完成它。

让我们尝试经典的方式:

                System.Diagnostics.Process process = new System.Diagnostics.Process();
                process.StartInfo.UseShellExecute = false;
                process.StartInfo.RedirectStandardOutput = true;
                process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                process.StartInfo.WorkingDirectory = @"C:\Program Files\Redis";
                process.StartInfo.FileName = "C:\\Windows\\System32\\cmd.exe"; //doh
                process.StartInfo.Arguments = "redis-cli ping";
                process.Start();

                var result = process.StandardOutput.ReadToEnd(); //HERE it gets blocked. Id does not go through

                process.WaitForExit();

所以我无法得到结果。

但如果我试试这个

ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost");

它就像一个魅力。

问题:传统方法有什么问题?我只是非常好奇。

标签: c#.net-coreredisdistributed-caching

解决方案


推荐阅读