c# - 通过 HTTP 连接到 Azure Redis 缓存

标签 c# .net azure redis

我正在使用“ServiceStack.Redis”连接到 Redis,它在我的开发计算机上正常工作。

基本上,我通过此行打开连接:

client = new RedisClient(host);

在我的开发机器上,host 是“localhost”。

现在,我想将应用程序上传到 Azure,因此我在 Azure 中创建了一个缓存,并尝试通过传递以下连接字符串来连接到它:

XXX.redis.cache.windows.net,ssl=false,password=YYY

“RedisClient”的创建似乎有效,但是当我尝试执行操作时(第一个执行的操作是 client.RemoveByPattern("...")),我得到出现以下错误:

Exception Details: System.Net.Sockets.SocketException: No such host is known

请注意,我允许通过 HTTP 连接缓存,因此通常情况下,端口 6379 是畅通且可访问的。

我在互联网上找到的所有示例都使用“ConnectionMultiplexer”,但在 NuGet 包“ServiceStack.Redis”中似乎找不到此类。

我做错了什么?

最佳答案

我在使用 ServiceStack 连接到 Azure Redis 时遇到了相同(类似?)的问题,最终它为我找到了适合我的连接的正确语法。 XXX.redis.cache.windows.net?ssl=true

在这里找到一些帮助https://github.com/ServiceStack/ServiceStack.Redis ,但引用连接字符串部分有示例;

“Redis 连接字符串已扩展为支持更通用的 URI 格式,该格式现在能够在单个连接字符串(类似于数据库连接字符串)中捕获大多数 Redis 客户端设置。

Redis 连接字符串支持多种类似 URI 的格式,从简单的主机名或 IP 地址和端口对到在 QueryString 上指定多个选项的完全限定的 URI。”

支持格式的一些示例:

localhost
127.0.0.1:6379
redis://localhost:6379
password@localhost:6379
clientid:password@localhost:6379
redis://clientid:password@localhost:6380?ssl=true&db=1

注意:我在这里使用了最后一个示例,但没有使用 redis://位,因为我发现 Azure 中不需要它。

关于c# - 通过 HTTP 连接到 Azure Redis 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53199029/

相关文章:

c# - 为什么我最后提到的组会捕获其他所有组?

c# - 在 C# 中,我如何停止执行来自其绑定(bind)委托(delegate)之一的事件?

azure - 从 VS Code 终端登录 AzureRmAccount

azure - Azure PowerBI 可以连接到弹性查询吗?

azure - 当 Azure 表存储主区域失败时,CloudTableClient.BaseUri.AbsoluteUri 值是否会更改?

c# - 如何通过 href 查找并单击链接/按钮? (GeckoFx 浏览器)

c# - 如何创建安装最新 NuGet 依赖项的项目模板

c# - 无法将 System.Configuration.ConfigurationManager 添加到 .NET 核心应用程序

c# - 在 Visual Studio 中使用自编译的 Roslyn?

c# - Silverlight Storyboard中的收缩面板