Правильный способ использования 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, является дешевым сквозным объектом и не нуждается в хранении.