我正在使用StackExhange.Redis.Extensions.Core nuget包。我想知道连接到Redis的确切位置是哪里?
下面是我的代码:
这是我的应用程序设置:在此输入代码
"Redis": {
"Password": "xyz123",
"AllowAdmin": true,
"Ssl": true,
"KeepAlive": 180,
"ConnectTimeout": 5000, //Timeout for connecting to redis
"ConnectRetry": 2,
"PoolSize": 1,
"User": "appuser",
"SyncTimeout": 5000,
"AsyncTimeout": 5000,
"Database": 0,
"Hosts": [
{
"Host": "cluster.payment-redis.hshwxw12.use1.cache.amazonaws.com",
"Port": "6379"
}
]
}
var redisConfiguration = Configuration.GetSection("Redis").Get<RedisConfiguration>();
服务。添加堆栈交换RedisExtensions(redisConfiguration);
private readonly IRedisClient _redisClient;
private readonly ILogger<ICacheService> _logger;
private IRedisDatabase _redisDatabase;
private bool IsDisposed = false;
public CacheService(IRedisClient redisClient, ILogger<ICacheService> _logger)
{
this._redisClient = redisClient;
this._logger = _logger;
}
private IRedisDatabase Database
{
get
{
if (_redisDatabase == null)
{
_logger.LogInformation(_redisClient.ToString());
_redisDatabase = _redisClient.GetDefaultDatabase();
}
return _redisDatabase;
}
}
public async Task<(bool isSuccess, string errorMessage)> SetAsync<T>(string key, T data, TimeSpan? expiry)
{
bool isSuccess = false;
string errorMessage = string.Empty;
if (expiry == null)
{
expiry = TimeSpan.FromHours(1);
}
try
{
string jsonData = JsonConvert.SerializeObject(data);
await Database.AddAsync(key, jsonData, (TimeSpan)expiry).ConfigureAwait(false);
isSuccess = true;
}
catch (Exception ex)
{
errorMessage = ex?.Message;
_logger.LogError(ex?.Message);
}
return (isSuccess, errorMessage);
}
1条答案
按热度按时间u0sqgete1#
Redis连接将在以下条件下打开。
(关键字,jsonData,(时间跨度)过期)。