39 lines
1.0 KiB
C#
39 lines
1.0 KiB
C#
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();
|
||
}
|
||
}
|
||
|
||
}
|