私はRedis分散キャッシュと連携し、フェイルオーバーパターンをハッシュデータ配布とマージしています。私の設定は:Stackexchange Redis Sentinel Client
Sentinel1 Sentinel4
Master1 Master2
Sentinel2 Sentinel5
Slave1 Slave2
Sentinel3 Sentinel6
私のコードでは、私はセンチネルを使ってマスターキャッシュにアクセスする必要があります。
どちらを指しているのですか?
私は、ConnectionMultiplexerの設定内にすべてのセンチネルenpointを登録する必要があると思います。
私はこのコードを使用してセンチネルために私のクライアントを接続することができるメートル:
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;
は一度私がのSetStringとのgetStringなどの標準Redisの方法を使用して、キャッシュデータベースにアクセスするために必要な接続を持って...そう
db = conn.getDatabase();
db.getString(key);
db.setString(key, value);
この時点では、「この操作はコマンドマップで無効になっており、使用できません:SETEX」またはGETというエラーが表示されます。
私はセンチネルに現在のマスターとの接続を求める方法があるはずですが、私は多くの便利なコード例を見つけられません。 誰も私を助けることができますか?