CSharp-Single-EFCore/Bunny.Common/Context/Middleware/RedisContext.cs

42 lines
1.4 KiB
C#

using log4net;
using Microsoft.AspNetCore.Builder;
using StackExchange.Redis;
namespace Bunny.Common.Context.Middleware;
public static class RedisContext
{
private static readonly ILog Log = LogManager.GetLogger(typeof(RedisContext));
public static IDatabase? RedisDatabase;
private static readonly EndPointCollection EndPointCollection = new();
public static void AddRedisContext(this WebApplicationBuilder builder)
{
Task.Run(() =>
{
// 获取端口等配置信息
var host = AppSettings.GetConfig("Redis:Host");
var port = Convert.ToInt32(AppSettings.GetConfig("Redis:Port"));
var defaultDb = Convert.ToInt32(AppSettings.GetConfig("Redis:DefaultDB"));
var password = AppSettings.Get<string>("Redis:Password");
var timeout = Convert.ToInt32(AppSettings.GetConfig("Redis:AsyncTimeout"));
// 添加连接地址
EndPointCollection.Add(host, port);
// 初始化连接对象
var connect = ConnectionMultiplexer.Connect(new ConfigurationOptions
{
EndPoints = EndPointCollection,
Password = password,
DefaultDatabase = defaultDb,
AsyncTimeout = timeout
});
// 创建连接对象
RedisDatabase = connect.GetDatabase();
Log.Info("Redis 初始化...");
});
}
}