CacheOptions.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. // 大名科技(天津)有限公司 版权所有
  2. //
  3. // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证
  4. //
  5. // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动
  6. //
  7. // 任何基于本项目二次开发而产生的一切法律纠纷和责任,均与作者无关
  8. namespace Admin.NET.Core;
  9. /// <summary>
  10. /// 缓存配置选项
  11. /// </summary>
  12. public sealed class CacheOptions : IConfigurableOptions<CacheOptions>
  13. {
  14. /// <summary>
  15. /// 缓存前缀
  16. /// </summary>
  17. public string Prefix { get; set; }
  18. /// <summary>
  19. /// 缓存类型
  20. /// </summary>
  21. public string CacheType { get; set; }
  22. /// <summary>
  23. /// Redis缓存
  24. /// </summary>
  25. public RedisOption Redis { get; set; }
  26. public void PostConfigure(CacheOptions options, IConfiguration configuration)
  27. {
  28. options.Prefix = string.IsNullOrWhiteSpace(options.Prefix) ? "" : options.Prefix.Trim();
  29. }
  30. }
  31. /// <summary>
  32. /// Redis缓存
  33. /// </summary>
  34. public sealed class RedisOption : RedisOptions
  35. {
  36. /// <summary>
  37. /// 最大消息大小
  38. /// </summary>
  39. public int MaxMessageSize { get; set; }
  40. }
  41. /// <summary>
  42. /// 集群配置选项
  43. /// </summary>
  44. public sealed class ClusterOptions : IConfigurableOptions
  45. {
  46. /// <summary>
  47. /// 是否启用
  48. /// </summary>
  49. public bool Enabled { get; set; }
  50. /// <summary>
  51. /// 服务器标识
  52. /// </summary>
  53. public string ServerId { get; set; }
  54. /// <summary>
  55. /// 服务器IP
  56. /// </summary>
  57. public string ServerIp { get; set; }
  58. /// <summary>
  59. /// SignalR配置
  60. /// </summary>
  61. public ClusterSignalR SignalR { get; set; }
  62. /// <summary>
  63. /// 数据保护key
  64. /// </summary>
  65. public string DataProtecteKey { get; set; }
  66. /// <summary>
  67. /// 是否哨兵模式
  68. /// </summary>
  69. public bool IsSentinel { get; set; }
  70. /// <summary>
  71. /// 哨兵配置
  72. /// </summary>
  73. public StackExchangeSentinelConfig SentinelConfig { get; set; }
  74. }
  75. /// <summary>
  76. /// 集群SignalR配置
  77. /// </summary>
  78. public sealed class ClusterSignalR
  79. {
  80. /// <summary>
  81. /// Redis连接字符串
  82. /// </summary>
  83. public string RedisConfiguration { get; set; }
  84. /// <summary>
  85. /// 缓存前缀
  86. /// </summary>
  87. public string ChannelPrefix { get; set; }
  88. }
  89. /// <summary>
  90. /// 哨兵配置
  91. /// </summary>
  92. public sealed class StackExchangeSentinelConfig
  93. {
  94. /// <summary>
  95. /// master名称
  96. /// </summary>
  97. public string ServiceName { get; set; }
  98. /// <summary>
  99. /// master访问密码
  100. /// </summary>
  101. public string Password { get; set; }
  102. /// <summary>
  103. /// 哨兵访问密码
  104. /// </summary>
  105. public string SentinelPassword { get; set; }
  106. /// <summary>
  107. /// 哨兵端口
  108. /// </summary>
  109. public List<string> EndPoints { get; set; }
  110. /// <summary>
  111. /// 默认库
  112. /// </summary>
  113. public int DefaultDb { get; set; }
  114. /// <summary>
  115. /// 主前缀
  116. /// </summary>
  117. public string MainPrefix { get; set; }
  118. /// <summary>
  119. /// SignalR前缀
  120. /// </summary>
  121. public string SignalRChannelPrefix { get; set; }
  122. }