我與Redis分佈式緩存一起使用,故障轉移模式與哈希數據分佈合併。我的配置是:Stackexchange Redis Sentinel客戶端
Sentinel1 Sentinel4
Master1 Master2
Sentinel2 Sentinel5
Slave1 Slave2
Sentinel3 Sentinel6
在我的代碼中,我需要使用sentinel訪問主緩存。
哪一個有我指向?
我想我必須在ConnectionMultiplexer的配置中註冊所有的sentinel enpoints。
我爲能夠連接我的客戶端使用此代碼的前哨:
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;
一旦得到了,我需要使用標準的Redis的方法,如的SetString和GetString訪問緩存數據庫的連接...所以
db = conn.getDatabase();
db.getString(key);
db.setString(key, value);
在這一點上我得到一個錯誤,指出「此操作已被禁用在命令行中,不能使用:SETEX」或GET。
我想應該有一種方法來詢問哨兵到當前主人的連接,但我沒有找到許多有用的代碼示例。 任何人都可以幫助我嗎?