我正在启动一个dotnet核心应用程序和redis使用docker compose。Redis hostname设置为docker网络中使用的容器名。服务堆栈中的redis连接管理器是使用连接字符串设置的。但是,它似乎总是默认返回到本地主机:6379
两周前,同样的docker-compose.yaml,同样的redis客户端管理器代码。
Docker版本18.09.1,内部版本4c52b90-
docker compose版本1.23.2,内部版本1110ad01
我已经按照servicestack.redis手册尝试了各种连接字符串选项。
代码:
container.Register<IRedisClientsManager>(c => new BasicRedisClientManager(Environment.GetEnvironmentVariable("CACHE_CONNECTION_STRING")));
container.Register<ICacheClient>(c => c.Resolve<IRedisClientsManager>().GetCacheClient());
Console.WriteLine($"Cache details: Cache={Environment.GetEnvironmentVariable("CACHE")}, CONNECTION_STRING={Environment.GetEnvironmentVariable("CACHE_CONNECTION_STRING")}");
日志:
Connection string used:
dev-backend | Cache details: Cache=Redis, CONNECTION_STRING=dev-redis:6379
Error:
dev-backend | fail: ServiceStack.Redis.RedisNativeClient[0]
dev-backend | Could not connect to redis Instance at localhost:6379
知道为什么会这样吗?