Yuebon.Extensions/ServiceExtensions/RedisCacheSetup.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using Microsoft.Extensions.Caching.Distributed;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Caching.StackExchangeRedis;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Unicode;
namespace Yuebon.Extensions.ServiceExtensions;
/// <summary>
/// Redis缓存 启动服务
/// </summary>
public static class RedisCacheSetup
{
/// <summary>
/// Redis缓存 启动服务
/// </summary>
/// <param name="services"></param>
/// <exception cref="ArgumentNullException"></exception>
public static void AddRedisCacheSetup(this IServiceCollection services)
{
if (services == null) throw new ArgumentNullException(nameof(services));
CacheProvider cacheProvider = new CacheProvider
{
IsUseRedis = Appsettings.Configuration.GetSection("CacheProvider:UseRedis").Value.ToBool(false),
ConnectionString = Appsettings.Configuration.GetSection("CacheProvider:Redis_ConnectionString").Value,
InstanceName = Appsettings.Configuration.GetSection("CacheProvider:Redis_InstanceName").Value
};
var options = new JsonSerializerOptions();
options.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);
options.WriteIndented = true;
options.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
options.AllowTrailingCommas = true;
//设置时间格式
options.Converters.Add(new DateTimeJsonConverter());
options.Converters.Add(new DateTimeNullableConverter());
//设置bool获取格式
options.Converters.Add(new BooleanJsonConverter());
//设置数字
options.Converters.Add(new IntJsonConverter());
options.Converters.Add(new LongJsonConverter());
options.PropertyNamingPolicy = new UpperFirstCaseNamingPolicy();
options.PropertyNameCaseInsensitive = true; //忽略大小写
//判断是否使用Redis,如果不使用 Redis就默认使用 MemoryCache
if (cacheProvider.IsUseRedis)
{
//Use Redis
services.AddStackExchangeRedisCache(options =>
{
options.Configuration = cacheProvider.ConnectionString;
options.InstanceName = cacheProvider.InstanceName;
});
services.AddSingleton(typeof(ICacheService), new RedisCacheService(new RedisCacheOptions
{
Configuration = cacheProvider.ConnectionString,
InstanceName = cacheProvider.InstanceName
}, options, 0));
services.AddSingleton(typeof(RedisHelper), new RedisHelper(new RedisCacheOptions
后面还有 23 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。