You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redis Sentinel连接后SET命令被禁用报错,Redis本体正常求助

解决Redis Sentinel连接时SET命令被禁用的报错

你遇到的报错是因为代码里设置了CommandMap = CommandMap.Sentinel,这个命令映射是专门给Sentinel节点本身设计的,只允许执行Sentinel相关的管理命令(比如SENTINEL get-master-addr-by-name),完全禁止了SET这类普通数据操作命令,所以执行StringSet时会报错。

解决方案

  • 直接删除代码里的CommandMap = CommandMap.Sentinel这一行,或者把它改成CommandMap = CommandMap.Default。
  • ConnectionMultiplexer.SentinelConnect方法会自动通过Sentinel集群找到对应的主节点,然后建立和主节点的连接,此时用默认的命令映射就能正常执行所有Redis数据操作命令。

修改后的代码示例

var options = new ConfigurationOptions
{
    EndPoints = { "host1:26379", "host2:26379", "host3:26379" },
    ServiceName = "mymaster",
    Password = "********"
};

var connection = ConnectionMultiplexer.SentinelConnect(options);

var db = connection.GetDatabase();

db.StringSet("mykey", "myvalue");

内容的提问来源于stack exchange,提问作者smka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 16:03:10