/// <summary> /// 使用StackExchangeRedis缓存,配置注入 /// </summary> /// <param name="builder"></param> /// <param name="sectionPath"></param> /// <returns></returns> public static ICachingBuilder UseStackExchangeRedis(this ICachingBuilder builder, string sectionPath = "Caching:StackExchangeRedis") { // "Caching": { // "StackExchangeRedis": { // "Connection": "127.0.0.1:6379,password=12345678", //"InstanceName": "实例:" // } // } var option = new StackExchangeRedisOption(); var section = builder.Configuration.GetSection(sectionPath); string _connectionString = section.GetSection("Connection").Value; //连接字符串 string _instanceName = section.GetSection("InstanceName").Value; //实例名称 option.DbProviderName = _instanceName; option.Configuration = _connectionString; builder.Services.AddSingleton <IRedisDatabaseProvider>(sp => { return(new RedisDatabaseProvider(option.DbProviderName, option.Configuration)); }); builder.Services.AddSingleton <ICachingProvider>(sp => { return(new DefaultRedisCachingProvider(option.DbProviderName, sp.GetServices <IRedisDatabaseProvider>(), sp.GetService <ICachingSerializer>())); }); builder.Services.AddSingleton <IRedisCachingProvider>(sp => { return(new DefaultRedisFeatureProvider(option.DbProviderName, sp.GetServices <IRedisDatabaseProvider>(), sp.GetService <ICachingSerializer>())); }); return(builder); }
/// <summary> /// 使用StackExchangeRedis缓存 /// </summary> /// <param name="builder"></param> /// <param name="options"></param> /// <returns></returns> public static ICachingBuilder UseStackExchangeRedis(this ICachingBuilder builder, StackExchangeRedisOption option) { builder.Services.AddSingleton <IRedisDatabaseProvider>(sp => { return(new RedisDatabaseProvider(option.DbProviderName, option.Configuration)); }); builder.Services.AddSingleton <ICachingProvider>(sp => { return(new DefaultRedisCachingProvider(option.DbProviderName, sp.GetServices <IRedisDatabaseProvider>(), sp.GetService <ICachingSerializer>())); }); return(builder); }