这个想法是使用更少的连接和更好的性能。连接是否随时终止?
对于另一个问题,是否_redis.GetDatabase()打开新连接?
_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; }
不,多路复用器不会过期。没有GetDatabase不会打开新连接。basics.md涵盖了所有内容 -特别是:
从GetDatabase返回的对象是便宜的直通对象,不需要存储。