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);
        }