gpt4 book ai didi

c# - Stackexchange Redis 哨兵客户端

转载 作者:可可西里 更新时间:2023-11-01 11:25:07 24 4
gpt4 key购买 nike

我正在使用 Redis 分布式缓存,故障转移模式与散列数据分布相结合。我的配置是:

          Sentinel1                   Sentinel4
Master1 Master2
Sentinel2 Sentinel5
Slave1 Slave2
Sentinel3 Sentinel6

在我的代码中,我需要使用哨兵访问主缓存。

我要指出哪一个?

我想我必须在 ConnectionMultiplexer 的配置中注册所有的哨兵点。

我可以使用此代码将我的客户端连接到 sentinel:

  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。

我想应该有一种方法可以询问哨兵与当前主机的连接,但我找不到很多有用的代码示例。谁能帮帮我?

最佳答案

情况发生了变化,今天在 redis 连接字符串或配置中指定哨兵端点和服务名称就足够了。所有其余部分已封装为 this 的一部分。提交。

var conn = ConnectionMultiplexer.Connect("sentinel:26379,serviceName=mymaster");
var db = conn.GetDatabase();
db.StringSet("key", "value");

关于c# - Stackexchange Redis 哨兵客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46677528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com