using CSRedis; using Furion; using Microsoft.Extensions.Caching.Distributed; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Caching.Redis; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; namespace Admin.NET.Core { public static class CSRedisSetup { /// /// CSRedis初始化 /// /// public static void AddCSRedisSetup(this IServiceCollection services) { services.AddSingleton(provider => { var cacheOptions = App.GetOptions(); if (cacheOptions.CacheType == CacheTypeEnum.RedisCache.ToString()) { var redisStr = $"{cacheOptions.RedisConnectionString},prefix={cacheOptions.InstanceName}"; var redis = new CSRedisClient(redisStr); services.AddSingleton(redis); RedisHelper.Initialization(redis); return new CSRedisCache(redis); } else // 默认使用内存 { services.AddDistributedMemoryCache(); IOptions options = provider.GetService>(); return new MemoryDistributedCache(options); } }); } } }