无法从.net应用程序连接aws Elasticache Redis

问题描述 投票:0回答:1

我正在将.NET核心应用程序连接到AWS ElastiCache Redis。enter image description here

AWS Elasticache Redis正在运行,并且在安全组上打开了端口6329。客户端代码正在使用StackExchange.Redis

           var redis = ConnectionMultiplexer.Connect("redis-1.xxxx.0001.use1.cache.amazonaws.com:6379");
           //var redis = ConnectionMultiplexer.Connect("localhost"); //working
           IDatabase db = redis.GetDatabase();

            string value = "abcdefg";
            db.StringSet("mykey", value);        

            string value2 = db.StringGet("mykey");
            Console.WriteLine(value2); // writes: "abcdefg"

            Console.ReadLine();

例外是:

无法连接到Redis服务器。无法连接在redis-1.xxx.0001.use1.cache.amazonaws.com:6379/Interactive上,初始化/未启动,最后:无,来源:BeginConnectAsync,优秀:0,上次阅读:5s之前,上次写入:5s之前,保持活动:60s,状态:Connecting,mgr:10(可用10),最后一次心跳:永不,全局:0年前,v:2.0.601.3402

已添加到,abortConnect=false的端点,我可以连接。

现在错误出现在StringSet

StackExchange.Redis.RedisConnectionException:'没有连接可用于此操作的服务:SET mykey; UnableToConnect ...

。NET代码与我的本地Redis服务正常工作,因此在我的AWS设置中看起来不正确。

成功ssh到我的EC2实例,并redis-cli到我的AWS redis服务:enter image description here

请问有什么主意吗?

注意:默认情况下,AWS Elasticache Redis不可用于公共访问。

amazon-web-services .net-core redis amazon-elasticache
1个回答
0
投票

问题:“ ...端口6329在安全组上处于打开状态。。您不是说6379吗?

即使,我认为我在“默认”子网组上也有问题。

AWS ElastiCache Redis所在的VPC_Subnet(在该组中)是否具有可访问Internet网关的路由表?如果没有,则需要将InternetGteway附加到路由表,然后在所需的子网中使用该路由表。

应该像选择:Internet GW

© www.soinside.com 2019 - 2024. All rights reserved.