连接到Azure Redis缓存

8
我正在尝试使用以下代码连接到预览版的Azure Redis缓存。
var options = new ConfigurationOptions();
options.EndPoints.Add("myname.redis.cache.windows.net", 6379);
options.Ssl = true;
options.Password = "VeryLongKeyCopiedFromPortal";
var connection = ConnectionMultiplexer.Connect(options);

当我执行此操作时,会出现以下异常:
"无法连接到redis服务器;若要创建断开的复用器,请禁用AbortOnConnectFail"
可能是什么原因引起的呢?
3个回答

12

SSL使用的端口号为6380,非SSL使用的端口号为6379。如果未设置端口,则StackExchange.Redis默认使用这些端口,因此您只需从代码中删除端口即可,如下所示:

var options = new ConfigurationOptions();
options.EndPoints.Add("myname.redis.cache.windows.net");
options.Ssl = true;
options.Password = "VeryLongKeyCopiedFromPortal";
var connection = ConnectionMultiplexer.Connect(options);

你也可以使用连接字符串,而不是ConfigurationOptions对象:

var connection = ConnectionMultiplexer.Connect(
    "myname.redis.cache.windows.net,ssl=true,password=VeryLongKeyCopiedFromPortal");

我已经尝试了这两种方法来解决同一个错误。 - Craig
@Craig,那应该没问题;以下测试对我来说是通过的,并且使用SSL进行通信:http://pastie.org/9195704 - Marc Gravell
而要回显的是; 完整的连接字符串为"redacted.redis.cache.windows.net,password=somebase64,ssl=True" - Marc Gravell
实际上,这4个都可以工作,但是不建议使用2个非SSL选项:http://pastie.org/9195716 - Marc Gravell
3
这些测试对我来说都失败了,我不知道为什么。我所做的就是从门户中缓存名称中复制名称,密码是在门户中生成的主键。 - Craig
显示剩余2条评论

1
我遇到过同样的问题,请确认你已正确复制了密钥 :)
我的问题在于我没有正确地从用户界面复制Base64编码的密钥。考虑下面的两个密钥。我通常复制/粘贴一个非破损字符串是通过双击。当我双击密钥时,我只获取了第一组数据而不是整个字符串。
8Rs0Uvx7aaaaaaaaTjaoTu11bz0qOm/o5E8dtWPXtrc=
8Rs0Uvx7aaaaaaaaTjaoTu11bz0qOm

-1

在C#中,你可以像这样使用本地变量...

"localhost, port:6379, password=value"

1
我因为以下几个原因对这个回答进行了负投票: 1) 这个问题已经7年了,并且在7年前发布的那一天就获得了一个被接受的答案。2) 这不是针对问题的真正答案,因为问题是关于Azure Redis作为服务而不是本地安装的Redis。 - Daniel Mann
2
@DanielMann - 你说得很对,我真诚地道歉,我会更加注意回答新的话题。抱歉。 - Felipe Augusto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接