4

2 つのスレーブと 3 つのセンチネルを備えたマスター/スレーブ構成を使用しています。コマンドラインでコマンドを試すと、すべて問題ありません。しかし、C# 用に構成する際にいくつか問題があります。StackExchange.Redis ライブラリを使用しています。しかし、マスターからキーを取得/設定するために何をすべきかわかりません。手動でマスターを見つけてからキーを取得または設定する必要がありますか?それとも自律的に行​​う必要がありますか? それを行う最良の方法は何ですか?キーを取得/設定するたびに、誰がマスターかを確認する必要がありますか? 今のところ、私はこれだけを行い、他のコードはマスターが 1 つしかないまま残しました。

private static string ServiceName = "mymaster";
private static string IP { get { return "127.0.0.1"; } }
private static int Port = 26379;

public static readonly ConnectionMultiplexer Connection = GetConn();
public static readonly IServer Server = Connection.GetServer(IP, Port);

public static ConnectionMultiplexer GetConn()
{
    try
    {
        // create a connection
        var options = new ConfigurationOptions()
        {
            CommandMap = CommandMap.Sentinel,
            EndPoints = { { IP, Port } },
            AllowAdmin = true,
            TieBreaker = "",
            ServiceName = ServiceName,
            SyncTimeout = 5000,
            AbortOnConnectFail = true,
            Ssl = false
        };
        var connection = ConnectionMultiplexer.Connect(options, Console.Out);
        return connection;
    }
    catch (Exception ex)
    {
        ASLog.LogError(ex, 1);
        return null;
    }
}

ここで、ポート 26379 に 3 つのセンチネルの 1 つがあります。申し訳ありませんが、これを C# で使用する方法が少しわかりません。

4

2 に答える 2