问题标签 [redis-sentinel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
244 浏览

redis - 我们可以通过 redis-sentinel 将奴隶标记为不可升级吗?

我们有一个 redis 集群,其中一个 master 和一个 slave 由三个哨兵进程管理,还有一个附加的远程 slave,托管在不同的数据中心,用于透明的故障转移和数据保存,以防 master 和 slave 机器发生错误。

可能会发生一个短暂的错误,只关闭主 redis 进程,在这种情况下,我们希望看到从进程提升为主进程,而远程从进程从属于它。但是,sentinel 似乎可以轻松地将远程从站提升为主站,我们还没有找到任何方法来阻止这种情况。

有没有办法将特定的从机标记为不可升级,以便在发生故障转移时哨兵不会尝试使其成为主机?

0 投票
2 回答
5584 浏览

redis - Windows中的Redis哨兵本地集群设置

我正在尝试在本地设置一个 redis-sentinel 集群。我Redis-64.2.8.4在 windows 上运行。我想设置一个有 2 个奴隶的​​主人,因为这将反映我的生活环境。

我在跑

有了这个配置

但后来我得到了一个重复的日志

我已经阅读了这些文档,但老实说,我在这里应该做的事情并不太明智。我是否指定了配置中的所有服务器?

0 投票
1 回答
467 浏览

redis - 如何管理集群上指定的redis master在启动时关闭的情况

据我了解,如果redis要在一组机器上运行,将会有几个奴隶和一个主人。并且可以在启动时使用命令使从站连接到主站。然后集群上每台机器上的哨兵可以连接到主服务器以找出所有从服务器,然后如果当前主服务器由于某种原因出现故障,则将其中一个切换到主服务器。

现在,我的问题是 - 当我们在集群上启动 redis 服务器时,当指定的主服务器关闭时,我们如何进行故障转移?SLAVEOF 命令将失败,并且不会有主控,因此哨兵无法从中获取配置数据。我们如何解决这个问题?谢谢 !

0 投票
1 回答
1440 浏览

redis - 如何在这个 Redis Sentinel 配置中切换 master?

我有以下 Redis/Sentinel 配置:

  • Redis 主A+N
  • M哨兵监视A,命名masterA
  • 客户端应用程序查询哨兵masterA,然后查询和修改A

现在说A已经过时了,我想用一个新的 Redis 主服务器替换它B(停机时间/数据丢失最少。)。在操作结束时,我想要这个:

  • Redis 主B+N
  • 客户端应用程序查询和修改B

我可以进行如下操作:

  1. 让哨兵开始监视B,命名masterB
  2. 让每个奴隶A成为B

从那里开始,我被卡住了,因为客户端应用程序masterA在与哨兵交谈时仍然要求。我有两个问题:

  • 有没有办法切换主人的名字,这样B就被称为masterA哨兵,因此也被客户端应用程序所熟知?
  • 修改客户端应用程序代码以处理从旧主机到新主机的切换是否更好?
0 投票
2 回答
13252 浏览

redis - Redis 哨兵 docker 镜像 / Dockerfile

我希望在 coreOS 集群上部署高可用性 Redis,我需要一个可以工作的 Redis Sentinel docker 映像(即 Dockerfile)。我已经收集了足够的信息/专业知识来创建一个(我认为)......但是我对高级网络的有限知识/经验是唯一阻止我构建和分享它的东西。

这里的专家可以帮助我开发 Redis Sentinel Dockerfile(目前不存在)吗?Redis/Docker 社区将真正从中受益。

这是更广泛的问题和背景: https ://github.com/antirez/redis/pull/1908

我认为解决方案就在这里: https ://github.com/antirez/redis/pull/1908#issuecomment-54380876

这是我一直在使用的 Dockerfile……但是如果您阅读上面的帖子,您会看到我的评论 (joshula)……它缺少 mattsta 正在谈论的网络修复。请注意,因为我在 coreOS 上使用它,所以 sentinel.conf 中的任何配置设置都是在运行时通过命令行设置的(因此是 ENTRYPOINT)。

0 投票
1 回答
1502 浏览

redis - 更改 redis sentinel 中的仲裁

我有 3 个哨兵监视法定人数为 2 的主从设置,我想将其增加到 5 个哨兵和法定人数 3。但是,当我运行 SENTINEL SET master quorum 3 时,更改不会传播到其他 2 个哨兵。这是正确的吗,如果确实发生故障转移是最后一次更改的值吗?

0 投票
2 回答
3108 浏览

redis - Redis Sentinel:最后一个节点没有成为主节点

我正在尝试在 3 节点 redis 集群中设置自动故障转移系统。我在每个节点上安装了 redis-sentinel(就像这个人一样:http ://www.symantec.com/connect/blogs/configuring-redis-high-availability )。只要我有两个或三个节点,一切都很好。问题是,只要只剩下一个节点并且它是一个从节点,它就不会自动被选为主节点。quorum 设置为 1,因此最后一个节点检测到 master 的故障,但由于没有多数,因此无法投票支持故障转移。

为了克服这个(令人惊讶的)问题,我编写了一个小脚本,询问其他节点的主节点,如果他们不回答,我将当前节点设置为主节点。这个脚本在 redis-sentinel.conf 文件中被调用,作为一个通知脚本。但是……只要启动了redis-sentinel服务,这个配置就被“抹掉”了!如果我查看 /etc 中的配置文件,“sentinel notification-script”行已经消失(redis-sentinel 重写了它的配置文件,为什么不这样做)但是我写的配置不再可用:

这是 sentinel-masters 命令的结果。唯一的问题是,我之前将“毫秒后停机”设置为 5000,将“故障转移超时”设置为 10000 ...

不知道有没有人遇到过类似的情况?好吧,如果有人对正在发生的事情有一点了解,我会很高兴的;)

0 投票
3 回答
5508 浏览

node.js - 如何连接到部署在 Google Cloud 上的 redis?

案例基础:在谷歌云中部署了一个redis实例(单实例)。使用基于 NodeJS 的服务器和 redis-sentinel 库连接到节点。原因是谷歌云上基于哨兵的节点管理。

我可以通过仪表板/控制台的 SSH 登录来登录 redis 实例。使用 redis-cli 连接到本地运行的 redis 服务,可以创建/编辑各种数据集。

问题:当我尝试通过本地主机或部署在同一项目域中的任何其他计算实例访问它时。我正在使用公共 ip 和端口 26379/6379 进行连接,但连接被拒绝。

可能的原因:

  • 网络访问策略。
0 投票
1 回答
2699 浏览

redis - ServiceStack.Redis.Sentinel 用法

我正在运行 ServiceStack 的许可版本并尝试在 Google Cloud Compute 上设置哨兵集群。

集群基本上就是 GCE 的 click-to-deploy redis 解决方案——3台服务器。这是我用来初始化的代码...

客户端工作正常 - 但是一旦我关闭了其中一个 redis 实例,一切都会变得糟糕。客户端抱怨无法连接到丢失的实例。此外,即使我将实例备份 - 它处于只读模式,所以一切仍然失败。一旦你处于这种状态,似乎没有办法恢复......

难道我做错了什么?RedisSentinal 客户端不知道新主人是谁有什么原因吗?我喂它所有3个主机IP地址......

0 投票
1 回答
1634 浏览

redis - 1 Redis哨兵与多个redis哨兵?

我一直在阅读有关使用 Redis sentinel 进行故障转移的信息。我打算有1个master + 1个slave,如果master宕机超过1分钟,把slave变成master。我知道这对于 Sentinel 来说是 100% 可能的。

但是,我看到文档提到使用多个 Sentinel。让我们假设这是不可能的(即预算或技术限制)。我假设我可以有这样的配置:

  • 服务器 A 中的 1 个哨兵
  • 服务器 B 中的主控
  • 服务器 C 中的从站

拥有多个哨兵而不是1个有什么好处?我的应用程序一次只能连接到 1 个哨兵,即使有 2 个哨兵,如果我的应用程序层中没有一些复杂的逻辑出现故障,我的应用程序也无法在其中任何一个哨兵之间旋转或切换。