public static void UseRedis( this StorageOptionsBuilder concurrencyOptionsBuilder, RedisCacheOptions options, int port = 6379) { if (concurrencyOptionsBuilder == null) { throw new ArgumentNullException(nameof(concurrencyOptionsBuilder)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } if (!IsIpAddress(options.Configuration)) { IPHostEntry ip = Dns.GetHostEntryAsync(options.Configuration).Result; var ipAddress = string.Empty; foreach (var adr in ip.AddressList) { var strIp = adr.ToString(); if (IsIpAddress(strIp)) { ipAddress = strIp; break; } } options.Configuration = ipAddress; } var storage = new RedisStorage(options, port); concurrencyOptionsBuilder.StorageOptions.Storage = storage; concurrencyOptionsBuilder.ServiceCollection.AddSingleton <IStorage>(storage); }