我与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。
我想应该有一种方法来询问哨兵到当前主人的连接,但我没有找到许多有用的代码示例。 任何人都可以帮助我吗?