-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRedisCacheOption.cs
130 lines (112 loc) · 3.32 KB
/
RedisCacheOption.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
namespace NetPro.RedisManager
{
/// <summary>
/// Redis配置
/// </summary>
public class RedisCacheOption : BaseRedisOptions
{
public RedisCacheOption()
{
}
/// <summary>
/// root node is Redis
/// </summary>
/// <param name="config"></param>
public RedisCacheOption(IConfiguration config)
{
if (config == null)
{
throw new ArgumentNullException(nameof(config));
}
config.GetSection(nameof(RedisCacheOption)).Bind(this);
}
/// <summary>
///
/// </summary>
public RedisCacheComponentEnum RedisComponent { get; set; }
/// <summary>
///
/// </summary>
/// <value>
/// The database.
/// </value>
public int Database { get; set; } = 0;
/// <summary>
/// 默认Key前缀
/// 规范以:结尾
/// :结尾可自动分组
/// </summary>
public string DefaultCustomKey { get; set; } = "";
/// <summary>
/// 线程池数量
/// </summary>
public int PoolSize { get; set; } = 50;
/// <summary>
/// 预热
/// </summary>
public int Preheat { get; set; } = 1;
/// <summary>
///
/// </summary>
public bool Cluster { get; set; }
public bool Enabled { get; set; }
}
public class BaseRedisOptions
{
/// <summary>
/// Gets or sets the password to be used to connect to the Redis server.
/// </summary>
/// <value>
/// The password.
/// </value>
public string Password { get; set; } = null;
/// <summary>
/// Gets or sets a value indicating whether to use SSL encryption.
/// </summary>
/// <value>
/// <c>true</c> if this instance is SSL; otherwise, <c>false</c>.
/// </value>
public bool IsSsl { get; set; } = false;
/// <summary>
/// Gets or sets the SSL Host.
/// If set, it will enforce this particular host on the server's certificate.
/// </summary>
/// <value>
/// The SSL host.
/// </value>
public string SslHost { get; set; } = null;
/// <summary>
/// Gets or sets the timeout for any connect operations.
/// </summary>
/// <value>
/// The connection timeout.
/// </value>
public int ConnectionTimeout { get; set; } = 5000;
/// <summary>
/// Gets the list of endpoints to be used to connect to the Redis server.
/// </summary>
/// <value>
/// The endpoints.
/// </value>
public IList<ServerEndPoint> Endpoints { get; set; } = new List<ServerEndPoint>();
}
/// <summary>
/// Defines an endpoint.
/// </summary>
public class ServerEndPoint
{
/// <summary>
/// Gets or sets the port.
/// </summary>
/// <value>The port.</value>
public int Port { get; set; }
/// <summary>
/// Gets or sets the host.
/// </summary>
/// <value>The host.</value>
public string Host { get; set; }
}
}