using StackExchange.Redis; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LiveForum.Code.Redis { public interface IRedisDatabaseProvider { IDatabase GetDatabase(); } public class RedisDatabaseProvider : IRedisDatabaseProvider { private readonly ConnectionMultiplexer _redis; // 可以通过构造函数传入连接字符串 public RedisDatabaseProvider(string redisConnectionString) { _redis = ConnectionMultiplexer.Connect(redisConnectionString); } // 也可以注入已经创建好的 ConnectionMultiplexer(更灵活) public RedisDatabaseProvider(ConnectionMultiplexer redis) { _redis = redis ?? throw new ArgumentNullException(nameof(redis)); } public IDatabase GetDatabase() { // 默认数据库是 db0,你也可以指定其它 db,比如 GetDatabase(1) return _redis.GetDatabase(); } } }