forked from ServiceStack/ServiceStack.Redis
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRedisConfig.cs
More file actions
138 lines (117 loc) · 5.09 KB
/
RedisConfig.cs
File metadata and controls
138 lines (117 loc) · 5.09 KB
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
131
132
133
134
135
136
137
138
using System;
using System.Net.Security;
using System.Threading;
namespace ServiceStack.Redis
{
public class RedisConfig
{
//redis-server defaults:
public const long DefaultDb = 0;
public const int DefaultPort = 6379;
public const int DefaultPortSsl = 6380;
public const int DefaultPortSentinel = 26379;
public const string DefaultHost = "localhost";
/// <summary>
/// Factory used to Create `RedisClient` instances
/// </summary>
public static Func<RedisEndpoint, RedisClient> ClientFactory = c =>
{
Interlocked.Increment(ref RedisState.TotalClientsCreated);
return new RedisClient(c);
};
/// <summary>
/// The default RedisClient Socket ConnectTimeout (default -1, None)
/// </summary>
public static int DefaultConnectTimeout = -1;
/// <summary>
/// The default RedisClient Socket SendTimeout (default -1, None)
/// </summary>
public static int DefaultSendTimeout = -1;
/// <summary>
/// The default RedisClient Socket ReceiveTimeout (default -1, None)
/// </summary>
public static int DefaultReceiveTimeout = -1;
/// <summary>
/// Default Idle TimeOut before a connection is considered to be stale (default 240 secs)
/// </summary>
public static int DefaultIdleTimeOutSecs = 240;
/// <summary>
/// The default RetryTimeout for auto retry of failed operations (default 10,000ms)
/// </summary>
public static int DefaultRetryTimeout = 10 * 1000;
/// <summary>
/// Default Max Pool Size for Pooled Redis Client Managers (default none)
/// </summary>
public static int? DefaultMaxPoolSize;
/// <summary>
/// The BackOff multiplier failed Auto Retries starts from (default 10ms)
/// </summary>
public static int BackOffMultiplier = 10;
/// <summary>
/// The Byte Buffer Size to combine Redis Operations within (1450 bytes)
/// </summary>
public static int BufferLength => ServiceStack.Text.Pools.BufferPool.BUFFER_LENGTH;
/// <summary>
/// The Byte Buffer Size for Operations to use a byte buffer pool (default 500kb)
/// </summary>
public static int BufferPoolMaxSize = 500000;
/// <summary>
/// Whether Connections to Master hosts should be verified they're still master instances (default true)
/// </summary>
public static bool VerifyMasterConnections = true;
/// <summary>
/// The ConnectTimeout on clients used to find the next available host (default 200ms)
/// </summary>
public static int HostLookupTimeoutMs = 200;
/// <summary>
/// Skip ServerVersion Checks by specifying Min Version number, e.g: 2.8.12 => 2812, 2.9.1 => 2910
/// </summary>
public static int? AssumeServerVersion;
/// <summary>
/// How long to hold deactivated clients for before disposing their connection (default 0 seconds)
/// Dispose of deactivated Clients immediately with TimeSpan.Zero
/// </summary>
public static TimeSpan DeactivatedClientsExpiry = TimeSpan.Zero;
/// <summary>
/// Whether Debug Logging should log detailed Redis operations (default true)
/// </summary>
public static bool EnableVerboseLogging = false;
[Obsolete("Use EnableVerboseLogging")]
public static bool DisableVerboseLogging
{
get => !EnableVerboseLogging;
set => EnableVerboseLogging = !value;
}
//Example at: http://msdn.microsoft.com/en-us/library/office/dd633677(v=exchg.80).aspx
public static LocalCertificateSelectionCallback CertificateSelectionCallback { get; set; }
public static RemoteCertificateValidationCallback CertificateValidationCallback { get; set; }
/// <summary>
/// Assert all access using pooled RedisClient instance should be limited to same thread.
/// Captures StackTrace so is very slow, use only for debugging connection issues.
/// </summary>
public static bool AssertAccessOnlyOnSameThread = false;
/// <summary>
/// Resets Redis Config and Redis Stats back to default values
/// </summary>
public static void Reset()
{
RedisStats.Reset();
DefaultConnectTimeout = -1;
DefaultSendTimeout = -1;
DefaultReceiveTimeout = -1;
DefaultRetryTimeout = 10 * 1000;
DefaultIdleTimeOutSecs = 240;
DefaultMaxPoolSize = null;
BackOffMultiplier = 10;
BufferPoolMaxSize = 500000;
VerifyMasterConnections = true;
HostLookupTimeoutMs = 200;
AssumeServerVersion = null;
DeactivatedClientsExpiry = TimeSpan.Zero;
EnableVerboseLogging = false;
CertificateSelectionCallback = null;
CertificateValidationCallback = null;
AssertAccessOnlyOnSameThread = false;
}
}
}