RedisListOptions.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using Microsoft.Extensions.Options;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. namespace Fuel.Infrastructure.Extension
  7. {
  8. public class RedisListOptions : IOptions<RedisListOptions>
  9. {
  10. public List<RedisConfig> RedisConfigs { get; set; }
  11. public RedisListOptions Value => this;
  12. public RedisListOptions()
  13. {
  14. RedisConfigs = new List<RedisConfig>();
  15. }
  16. /// <summary>
  17. /// 添加的redis
  18. /// </summary>
  19. /// <param name="redisConfig"></param>
  20. public void TryAdd(RedisConfig redisConfig)
  21. {
  22. if (!RedisConfigs.Any(p => p.Connection == redisConfig.Connection && p.DataBase== redisConfig.DataBase))
  23. {
  24. RedisConfigs.Add(redisConfig);
  25. }
  26. }
  27. public void Set(RedisConfig redisConfig)
  28. {
  29. if (!RedisConfigs.Any(p => p.Connection == redisConfig.Connection && p.DataBase == redisConfig.DataBase))
  30. {
  31. RedisConfigs.Remove(redisConfig);
  32. }
  33. RedisConfigs.Add(redisConfig);
  34. }
  35. }
  36. /// <summary>
  37. /// redis config 配置
  38. /// </summary>
  39. public class RedisConfig
  40. {
  41. /// <summary>
  42. /// url 地址
  43. /// </summary>
  44. public string Connection { get; set; }
  45. /// <summary>
  46. /// 数据库编号
  47. /// </summary>
  48. public int DataBase { get; set; }
  49. /// <summary>
  50. /// 链接名称
  51. /// </summary>
  52. public string KeyName { get; set; }
  53. /// <summary>
  54. /// 缓存key 的前缀
  55. /// </summary>
  56. public string PrefixKey { get; set; }
  57. /// <summary>
  58. /// 哨兵地址
  59. /// </summary>
  60. public string[] Sentinels {get;set;}
  61. }
  62. }