Правильный способ использования StackExchange.Рэдис
идея состоит в том, чтобы использовать меньше соединения и лучшую производительность. Срок действия соединения истекает в любое время?
и еще вопрос _redis.GetDatabase()
открыть новое подключение?
private static ConnectionMultiplexer _redis;
private static IDatabase _db;
public RedisCacheProvider(string configuration)
{
if (_redis == null)
lock (myLock)
if (_redis == null)
{
_redis = ConnectionMultiplexer.Connect(configuration);
_db = _redis.GetDatabase();
}
}
public async Task<string> GetString(string key)
{
string result = null;
RedisValue val = await _db.StringGetAsync(key);
if (val.HasValue)
result = val;
return result;
}
1 ответов
нет, мультиплексор не истекает. Нет GetDatabase не открывает новое соединение. Это все покрыто Основы.md - в частности:
объект, возвращаемый из GetDatabase, является дешевым сквозным объектом и не нуждается в хранении.