连接Redis集群失败

2024-03-15

我已经设置了 Redis 集群谷歌计算引擎 http://console.developers.google.com by 点击部署 https://cloud.google.com/solutions/redis/click-to-deploy?hl=en选项。现在我想使用“ioredis”从我的节点js代码连接到这个redis服务器,这是我连接到单个redis实例的代码

var Redis = require("ioredis");

var store = new Redis(6379, 'redis-ob0g');//to store the keys
var pub =   new Redis(6379, 'redis-ob0g');//to publish a message to all workers
var sub =   new Redis(6379, 'redis-ob0g');//to subscribe a message 

var onError = function (err) {
    console.log('fail to connect to redis ',err);
};
store.on('error',onError);
pub.on('error',onError);
sub.on('error',onError);

它起作用了。现在我想连接到redis作为集群,所以我将代码更改为

/**
 * list of server in replica set
 * @type {{port: number, host: string}[]}
 */
var nodes =[
    {   port: port,    host: hostMaster},
    {   port: port,    host: hostSlab1},
    {   port: port,    host: hostSlab2}
];
var store =  new Redis.Cluster(nodes);//to store the keys
var pub =   new Redis.Cluster(nodes);//to publish a message to all workers
var sub =    new Redis.Cluster(nodes);//to subscribe a message channel

Now it throw this error: enter image description here

这是我的 Google 计算控制台中的 Redis 集群:


好吧,我认为这里有一个混乱。

A Redis集群 http://redis.io/topics/cluster-tutorial部署与Sentinel 保护的标准 Redis 实例数量 http://redis.io/topics/sentinel。两个截然不同的事情。

GCE 的点击部署选项会部署许多受 Sentinel 保护的标准 Redis 实例,而不是 Redis 集群。

ioredis 可以处理这两种部署,但您必须使用相应的 API。在这里,您尝试使用 Redis Cluster API,导致出现此错误(标准 Redis 实例未激活与集群相关的命令)。

根据 ioredis 文档,您应该连接:

var redis = new Redis({
    sentinels: [{ host: hostMaster, port: 26379 },
                { host: hostSlab1, port: 26379 },
                { host: hostSlab2, port: 26379 } ],
    name: 'mymaster'
});

当然,检查主站的哨兵端口和名称。当主服务器发生故障时,ioredis 将自动管理到从服务器实例的切换,并且哨兵将确保从服务器在之前被提升为主服务器。

请注意,由于您使用 pub/sub,因此您将需要多个 Redis 连接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

连接Redis集群失败 的相关文章

随机推荐

  • 如何全局检测点击(触摸输入)而不是鼠标点击?

    我想制作一个当用户触摸屏幕时自动显示的应用程序 它不应该适用于点击 我查找了 Windows 7 8 中的触摸处理程序 但我看到每个触摸窗口都必须用RegisterTouchWindow注册 TL DR 有没有办法获得窗口外的触摸点位置 全
  • 配置 Google Cloud Load Balancer 路径规则

    我正在尝试配置 Google Cloud 负载均衡器以执行以下操作 我有一个网站在 VM 实例中的 Wordpress 计算机上运行 我希望用户在进入时可以访问该网站outairnet com 我有一个单独的 html 文件 我希望用户在访
  • 随着时间的推移缩放游戏对象

    我统一制作了一个测试游戏 当我单击按钮时 它会生成一个从工厂类创建的圆柱体 我试图做到这一点 以便当我创建圆柱体时 它的高度会在接下来的 20 秒内缩小 我发现的一些方法很难转化为我正在做的事情 如果您能引导我走向正确的方向 我将非常感激
  • 如何在模式打开时禁用正文滚动(仅限 IOS)

    仅限 IOS iPhone X iPhone 7 等 甚至 jquery 模态库也不起作用 https jquerymodal com https jquerymodal com 在 iPhone 上打开模态框 您将能够滚动正文 我发现很难
  • Beaker 中数据库和 sql 后端的区别?

    看起来像Beaker http beaker groovie org 支持两种数据库后端 ext database 和 ext sqla 但是它们之间有什么区别呢 Overview 查看源代码 Beaker 1 6 4 py2 7 egg
  • 显示编码的电子邮件主题

    我正在使用发送邮件消息向我们的支持系统发送电子邮件 但是当它发送电子邮件时 它会显示主题行 如下屏幕所示 us ascii Q R899076 Aman 系统摘要 在主题中我使用变量 vUserName Get Item env usern
  • 使用 SparkSQL 删除 MySQL 表

    我知道我们可以通过以下命令从 SparkSQL 查询或创建 Mysql 表 val data sqlContext read jdbc urlstring tablename properties data write format com
  • 更改 UISwitch 应用程序的颜色

    我在用UISwitch在 iOS 3 中在我的应用程序中创建一个开关元素 它的默认颜色设置为蓝色 但我想将其颜色更改为棕色 我怎样才能为它选择不同的颜色UISwitchiOS 3 中的元素 我怎样才能为它选择不同的颜色UISwitch现代
  • 忽略 Oracle DUP_VAL_ON_INDEX 异常有多糟糕?

    我有一个表 用于记录用户是否至少查看过一个对象一次 因此 HasViewed ObjectID number FK to Object table UserId number FK to Users table 两个字段都不为 NULL 并
  • WCF客户端:第一次调用失败,第二次调用成功

    我有一个 REST Web 服务 它使用 WCF 客户端调用外部 SOAP Web 服务 此 REST Web 服务托管在我们测试环境中的 IIS 中 当调用 REST Web 服务 然后调用外部 Web 服务 使用 WCF 客户端 时 在
  • 当按钮位于 UITableViewCell 上时,为什么 UIButton shownTouchWhenHighlighted 不起作用?

    I put a UIButton on a UITableViewCell并设置其showsTouchWhenHighlighted财产给YES 单元格的选择风格是UITableViewCellSelectionStyleNone 我有一个
  • 使用重复列重塑数据

    我正在尝试使用重塑来重组我的数据集 这是我的数据的一个子集 它是一个 16 X 198 数据框 每个奇数列都是 16 年的列表 偶数列具有不同国家 地区的值 Algeria x Algeria y Argentina x Argentina
  • ggplot 中的等值线图,其中包含有孔的多边形

    我正在尝试绘制德国的分区统计图 显示各州的贫困率 灵感来自这个问题 https stackoverflow com questions 21651985 shapefile to produce a linked micromap in r
  • Spring:我希望为 Web 应用程序创建一个 junit 测试 - 需要 WebApplicationContext

    我正在编写一个 junit 测试 以便 令人惊讶地 独立测试我的应用程序的一部分 问题是我在单元测试中调用的构造函数中执行以下行 WebApplicationContext webApplicationContext ContextLoad
  • 如何在 SELECT 语句的 WHERE 子句中传递 php 变量?

    我有一个 php 变量 我想在我的数据库中使用此变量获取数据库中的另一个字段where clause My code require conn php module POST postmodule query SELECT width FR
  • 使用 scipy 计算两个正态分布的重叠概率

    我有两条 scipy stats norm mean std pdf 0 正态分布曲线 我试图找出两条曲线的差异 重叠 我如何在Python中使用scipy计算它 谢谢 开始Python 3 8 标准库提供了NormalDist https
  • 如何在鼠标悬停在栏上时显示标签

    我用 Chartist js 制作了一个条形图 现在我想在栏上添加一些监听事件 如何让鼠标悬停在栏上时显示标签 您有 2 个选择 Option 1 您可以使用一个工具提示插件 你可以在这里找到它 https github com Globe
  • Jquery 验证:根据下拉选择动态添加/删除规则

    我有一个下拉选择器 其值从 1 到 4 根据选择 表单中的后续输入将被隐藏 并且每个输入所需的验证都会被删除 例如 如果选择 2 则显示输入 1 2 并添加所需的验证 同时隐藏 3 4 并删除验证 dropdownSelector chan
  • 将多个 jar 合并为一个(使用 Maven)

    我在 javafx 中有一个项目 我有 3 个依赖项 我尝试使用 maven 将它们与我的主体 jar 结合起来 结果我得到了一个罐子 1 82mb 但是当我点击他时 他没有启动提示出现 pom xml
  • 连接Redis集群失败

    我已经设置了 Redis 集群谷歌计算引擎 http console developers google com by 点击部署 https cloud google com solutions redis click to deploy