RedisCacheSetup.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using Microsoft.Extensions.DependencyInjection;
  2. using Ropin.Core.Extensions.Redis;
  3. using Ropin.Inspection.Common.Helper;
  4. using StackExchange.Redis;
  5. using System;
  6. namespace Ropin.Core.Extensions.ServiceExtensions
  7. {
  8. /// <summary>
  9. /// Redis缓存 启动服务
  10. /// </summary>
  11. public static class RedisCacheSetup
  12. {
  13. public static void AddRedisCacheSetup(this IServiceCollection services)
  14. {
  15. if (services == null) throw new ArgumentNullException(nameof(services));
  16. services.AddTransient<IRedisBasketRepository, RedisBasketRepository>();
  17. // 配置启动Redis服务,虽然可能影响项目启动速度,但是不能在运行的时候报错,所以是合理的
  18. services.AddSingleton<ConnectionMultiplexer>(sp =>
  19. {
  20. //获取连接字符串
  21. string redisConfiguration = Appsettings.app(new string[] { "Redis", "ConnectionString" });
  22. var configuration = ConfigurationOptions.Parse(redisConfiguration, true);
  23. configuration.ResolveDns = true;
  24. return ConnectionMultiplexer.Connect(configuration);
  25. });
  26. }
  27. }
  28. }