问题标签 [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 回答
1656 浏览

node.js - 如何在 node.js 上集成 redis-sentinel-client 和 socket.io?

如何将 socket.io 和主从 Redis 配置与自动故障转移集成?

0 投票
2 回答
5139 浏览

redis - Redis-Sentinel 在每个节点上都卡住了 slaveof

我正在使用redis-sentinel2.8 RC5 的 redis 来监视和故障转移我的 redis 节点。设置如下:

哨兵节点

  • 服务器 A
  • 服务器 B
  • 服务器 C

Redis 节点

  • 服务器 A(主)
  • 服务器 B(服务器 A 的从属服务器——slaveof在 redis 配置中使用)

在每个哨兵节点上,我使用相同的配置:

我正在做这个测试运行:

  1. 启动两个 redis 节点
  2. 启动每个哨兵节点(全部三个)
  3. 停止服务器 A(主服务器)
  4. 服务器 B 成为主服务器
  5. 再次启动服务器 A(主服务器)
  6. 停止服务器 B(从)
  7. 再次启动 Server B (Slave)

现在服务器 A 是服务器 B 的从服务器,服务器 A 是服务器 B 的从服务器。

这是一个错误还是配置错误?

这些是第 3 步(停止服务器 A 上的主服务器)之后的哨兵日志

的概述CONFIG GET slaveof

  • 服务器A:不在线
  • 服务器 B:""

这些是再次启动服务器 A(主服务器)后的日志(步骤 5):

的概述CONFIG GET slaveof

  • 服务器 A:"serverB.mydomain.tld"
  • 服务器 B:""

这些是停止服务器 B(从)后的日志:

的概述CONFIG GET slaveof

  • 服务器A:("serverB.mydomain.tld"这个时候好像出错了!)
  • 服务器B:不在线

这些是再次启动服务器 B(从)后的日志:

的概述CONFIG GET slaveof

  • 服务器 A:("serverB.mydomain.tld"现在这是错误的!)
  • 服务器 B:("serverA.mydomain.tld"现在这是错误的!)

此外,本节每 5 秒重复一次(无休止地):

0 投票
0 回答
888 浏览

redis - Booksleeve (1.3.39) + Redis 2.6.16 + Sentinel:连接已关闭(错误)

在生产环境中部署时,我与 Booksleeve 发生了一些随机断开连接。我已经在我的机器上运行了测试,我似乎无法重现错误。我不确定要检查什么,所以我决定在这里发帖。

我的设置:

2 个 Redis 2.6.16 (Debian Linux)

2 x Redis sentinel(与 redis 在同一台机器上运行)

4 个 Windows Server 2008 R2

应用程序连接处理

我的应用程序有一个使用 ConnectionUtils 打开的静态连接。我还有一个计时器(System.Timers.Timer),它运行每个连接。每 5 英寸 Ping 一次以检查连接是否仍然打开。如果我收到 Ping 异常,我会记录它,关闭并处理连接并再次使用 ConnectionUtils 将其替换为新连接。我也在记录 Task.UnobservedExceptions

这是我在日志中得到的内容:

这是我的连接监视器报告 ping 错误:

我尝试通过 Sentinels 连接并直接连接到 Redis,但我得到了同样的结果。

我已经要求我的网络管理员检查,但他说没有问题(我真的不能与我不知道的 oO 争论)

我已经查看了 Redis 设置和文档,据我所知,不使用监视器等的客户不应该被 redis 断开连接。Redis 上也禁用了空闲时间断开连接。

哨兵(因为它的测试版)是罪魁祸首吗?

任何解决问题的帮助将不胜感激。

0 投票
2 回答
1212 浏览

scala - 关闭时如何替换 nutcracker.yml 中的 master(twemproxy,redis)?

我正在使用 twemproxy 进行分片。在 nutcracker.yml 文件中,我已经放置了所有的主人。然后我做了这些主人的多个奴隶。我正在使用 redis-sentinel 来监控所有的主人。Redis-sentinel 做得很好。当其中一个主人倒下时,它的奴隶就成为主人。由于 twemproxy 没有用新的 master 更新,它正在 ping 到旧的 master。有没有办法更新 nutcracker.yml 文件中的 master 。我将 Redis 与 Scala Play 框架一起使用。

0 投票
1 回答
623 浏览

configuration - Redis replication config

I have a redis master setup with 2 slaves and a sentinal on each.

If the master goes down for say 2 seconds (+sdown) and comes back up (-sdown), it reads the last snapshot, and the slaves resync with the master.

The problem with this is that there may have been many writes between the last save and the +sdown. It seems like if the master goes from +sdown to -sdown and never +odown (where a failover is initiated), it should be able to sync FROM a slave. My reasoning is that the replication stream is continuous and the slaves most likely have a more accurate reflection of the masters state when +sdown happened.

Is there some config that I can do this? Am I forced to rely on the AOF or snapshots?

(Edit: adding sentinel tag)

0 投票
2 回答
3415 浏览

redis - 获得更快的 redis 故障转移

我正在使用由一个sentinel监控的两个 redis 实例。当主服务器宕机并且出现“+sdown”时,我会在其redis-clientnotification-script上使用以下命令运行从服务器提升为主服务器的位置:

SLAVEOF NO ONE.

它工作正常。

我的问题是,slave 需要大约 10 秒才能成为 master,应用程序才能继续工作。

我怎样才能减少这个时间戳?

下面是哨兵配置::::

0 投票
4 回答
2395 浏览

redis - 在 redis sentinel 客户端中复活 master 的问题

我开始在设置了主从设置的 redis 上工作。主机和从机设置在具有不同端口的同一台机器上。对于处理主/从故障转移,似乎 redis 有哨兵。我正在尝试实施哨兵。

我的大师 redis.conf:

我的从站的 redis1.conf:

我的 sentinel.conf 有:

我正在使用https://www.npmjs.org/package/redis-sentinel-client作为哨兵客户端。

只有一个 sentinel.conf 文件用于主从文件。我运行了两台服务器并通过杀死主服务器进行了检查。奴隶如预期般成为主人。From http://redis.io/topics/sentinel-old , under Resurrecting master section it is mentioned that the master which goes down will be added as slave of new elected master. 但是当我把我的主人打倒时,奴隶就成了主人。但老主人仍然不是新主人的奴隶。这是使用哨兵的正确方法..?

有关如何使用哨兵处理故障转移的任何建议。?或者节点的任何其他哨兵客户端包..?

0 投票
3 回答
2168 浏览

node.js - 在哪里运行 redis -sentinel

为了管理主从故障转移,redis 有哨兵在手。我正在使用的两台服务器。一个用于主服务器,另一个用于从服务器。master 和 slave 都是远程服务器并作为守护进程运行。如何使用主从 IP 配置哨兵。Sentinel 需要运行的地方。如何将哨兵作为守护进程运行。

详情:

我的主人跑进来

Port: 6379

IP: 192.168.56.101

我的奴隶跑进来

Port: 6379

IP: 192.168.56.102

我的节点正在运行

IP: 192.168.0.140

注意:Redis 服务器在 windows 的虚拟机中运行。节点也在同一台机器上本地运行。

更新文档指定了运行 Sentinel 的命令。我的问题是哨兵需要在我的本地机器或运行主服务器的虚拟机中运行,或者作为单独的哨兵服务器运行。就像一台redis-server用于master,一台用于slave,另一台用于sentinel。?

0 投票
1 回答
2163 浏览

c# - Redis Sentinel C# 客户端

我有 3 个 redis 服务器,1 个主服务器和 2 个从服务器。目前只有 1 个哨兵正在运行,它正在很好地监控它们。它会在需要时促进任何实例,并且非常顺利。

我目前遇到的问题是从 C# 与它通信。从我的谷歌搜索来看,似乎只有 csredis 支持哨兵检索奴隶/主人。所以使用这样的代码......

这工作,绝对没问题,当我杀死一个实例时,各种响应会发生变化。但是,速度非常慢!

如果我创建管理器并尝试获取从站 5 次,那么每个从站请求大约需要 1 秒,这非常慢。我注意到的是,第一个请求非常非常快。请看下面的代码...

这是输出...

奇怪的是,第一个是 4ms!然后它需要一段时间才能获得任何后续客户。所以我尝试另一个测试,为每个循环项目创建一个新的 SentinelManager,这样更快吗?不,完全一样。第一个非常快,然后非常非常慢。

我使用这个库是错误的,还是我发现了一个错误?将尝试抓住源并逐步完成它...

各位加油...


0 投票
1 回答
202 浏览

redis - redis 积累&发布一组操作

是否可以指示 Redis 累积一组操作,然后发出“全部发布”命令来发布整个操作集(按线性顺序)?

所以你会以某种方式设置一个标记(startpublish?),缓存会累积从那时hdel hset起收到的所有操作()。

最后,您将发出一个命令 ( publishall? ),然后 Redis 将按照接收到的线性顺序广播这些命令。

重要提示:我需要通过 Redis Sentinel Client ( package redis-sentinel-client) 在 Node.js 中以编程方式执行设置操作。