【问题标题】:Connect to Azure Redis Cache via HTTP通过 HTTP 连接到 Azure Redis 缓存
【发布时间】:2023-03-12 06:45:01
【问题描述】:

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

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

client = new RedisClient(host);

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

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

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

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

异常详细信息:System.Net.Sockets.SocketException:没有这样的主机 已知

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

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

我做错了什么?

【问题讨论】:

标签: c# .net azure redis


【解决方案1】:

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

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

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

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 不需要它。

猜你喜欢
  • 2014-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多