使用StackExchange.Redis的正确方式

本文关键字:方式 StackExchange Redis 使用 | 更新日期: 2023-09-27 18:20:04

其理念是使用更少的连接和更好的性能。连接是否随时过期?

对于另一个问题,_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;
}

使用StackExchange.Redis的正确方式

不,多路复用器不会过期。No GetDatabase不打开新连接。这些都包含在basics.md中,特别是:

从GetDatabase返回的对象是一个廉价的直通对象,不需要存储。