Skip to content

Commit e27c484

Browse files
committed
✨ csredis provider support sentinel dotnetcore#166
1 parent 1672b2f commit e27c484

File tree

4 files changed

+32
-5
lines changed

4 files changed

+32
-5
lines changed

src/EasyCaching.CSRedis/Configurations/CSRedisDBOptions.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,19 @@ public class CSRedisDBOptions
1515
/// Gets or sets the connection strings.
1616
/// </summary>
1717
/// <value>The connection strings.</value>
18-
public List<string> ConnectionStrings { get; set; }
18+
public List<string> ConnectionStrings { get; set; }
19+
20+
21+
/// <summary>
22+
/// Gets or sets the sentinels settings.
23+
/// </summary>
24+
/// <value>The sentinels settings.</value>
25+
public List<string> Sentinels { get; set; }
26+
27+
/// <summary>
28+
/// Gets or sets the read write setting for sentinel mode.
29+
/// </summary>
30+
/// <value>The read write setting.</value>
31+
public bool ReadOnly { get; set; }
1932
}
2033
}

src/EasyCaching.CSRedis/Configurations/EasyCachingCSRedisClient.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace EasyCaching.CSRedis
22
{
3-
using System;
3+
using System;
44
using global::CSRedis;
55

66
public class EasyCachingCSRedisClient : CSRedisClient
@@ -15,8 +15,14 @@ public EasyCachingCSRedisClient(string name, string connectionString)
1515
this._name = name;
1616
}
1717

18-
public EasyCachingCSRedisClient(string name, Func<string, string> NodeRule, params string[] connectionStrings)
19-
: base(NodeRule, connectionStrings)
18+
public EasyCachingCSRedisClient(string name, Func<string, string> nodeRule, params string[] connectionStrings)
19+
: base(nodeRule, connectionStrings)
20+
{
21+
this._name = name;
22+
}
23+
24+
public EasyCachingCSRedisClient(string name, string connectionString, string[] sentinels, bool readOnly)
25+
: base(connectionString, sentinels, readOnly)
2026
{
2127
this._name = name;
2228
}

src/EasyCaching.CSRedis/Configurations/RedisOptions.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
namespace EasyCaching.CSRedis
22
{
3-
using EasyCaching.Core;
43
using EasyCaching.Core.Configurations;
54

65
public class RedisOptions : BaseProviderOptions

src/EasyCaching.CSRedis/Configurations/RedisOptionsExtension.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using Microsoft.Extensions.Logging;
99
using Microsoft.Extensions.Options;
1010
using System;
11+
using System.Linq;
1112

1213
/// <summary>
1314
/// Redis options extension.
@@ -58,6 +59,14 @@ public void AddServices(IServiceCollection services)
5859

5960
var conns = options.DBConfig.ConnectionStrings;
6061
var rule = options.DBConfig.NodeRule;
62+
var sentinels = options.DBConfig.Sentinels;
63+
var readOnly = options.DBConfig.ReadOnly;
64+
65+
if (sentinels != null && sentinels.Any())
66+
{
67+
var redisClient = new EasyCachingCSRedisClient(_name, conns[0], sentinels.ToArray(), readOnly);
68+
return redisClient;
69+
}
6170

6271
if (conns.Count == 1)
6372
{

0 commit comments

Comments
 (0)