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

c# - 如何使用 StackExchange.Redis 支持 Redis 哨兵架构?

我的应用程序使用该StackExchange.Redis包,并且我开始使用哨兵架构以支持高可用性和故障。

我在网上搜索,试图找到在ConnectionMultiplexer使用哨兵架构时应该使用该对象的正确方法,但实际上找不到有用的答案。

有些帖子说它还不支持或部分支持它,有些帖子告诉您将所有 redis 连接地址添加到连接字符串中,有些帖子告诉您他们通过订阅事件提供了自定义实现。

那么,ConnectionMultiplexer支持这种架构吗?
如果答案是肯定的,我的连接字符串应该是什么样子?

0 投票
0 回答
2406 浏览

redis - redis中主从偏移是什么意思?

我正在编写一个脚本来监视使用哨兵管理的一组 redis 从站中的 redis 复制延迟。我正在查看INFO replication命令的结果,如下所示:

我原以为offset每个从站的 是衡量到目前为止已复制多少数据的量度,因此我可以查看各个从站master_repl_offsetoffset值之间的差异,以确定尚未复制的数据量。但是,在上述输出中, 和 的偏移量slave0slave2高于主控器。我是否误解了这些数字的含义?

0 投票
1 回答
1607 浏览

redis - 哨兵配置文件

向 Sentinel 添加 master 时,我总是通过编辑添加条目sentinel.conf,但我经常发现应用程序正在被另一个用户 (Sentinel) 重写。

我想知道是否有一种更合适、更有效的方法可以将主机添加到 Sentinel,而无需手动编辑配置文件。

0 投票
0 回答
1399 浏览

redis - 我可以在 redis sentinels 前使用负载均衡器吗?

我们运行一个容器环境 (Kubernetes),我们有一组 redis 哨兵来监视一堆 redis 实例。

由于它是一个容器化的环境,配置大多是动态的。一个哨兵容器可能会死掉,另一个容器会替换它,等等。

这给应用程序配置带来了问题。通常在静态设置中,您向客户提供哨兵的所有地址,他会使用它。在冻结的容器上,如果环境发生变化,配置就会过时。

为了解决这个问题,我们可以在 redis sentinels 前面使用负载均衡器。这样即使底层容器/ips 发生变化,应用程序配置仍然有效。

我知道哨兵永远不会忘记其他哨兵(奴隶也是如此),但我们可以在发生变化时刷新它们。

我们今天确实使用它,并且没有感觉到任何副作用 AFAIK,但我当然想知道是否有因此而出现问题的风险。

所以问题是:我可以在 redis sentinels 前面使用负载均衡器而不会出现任何重大问题吗?

0 投票
1 回答
3745 浏览

docker - Kubernetes Redis HA 并将 redis 暴露给容器外的事物

我正在尝试学习 docker 和 kubernetes,我想做的一件事是使用 Sentinel 设置 Redis 并将 redis 暴露给容器外部的东西。

在https://github.com/kubernetes/kubernetes/tree/master/examples/storage/redis之后,获取 redis 和哨兵设置非常容易

但是现在我的下一个愿望是能够在容器外访问redis,我无法弄清楚谁来暴露哨兵和主pod。

0 投票
0 回答
392 浏览

redis - 提升了redis master还是认为是slave

我正在使用带有一个主服务器、两个从服务器和一个 redis sentinel 实例的 redis 设置(我知道这不是推荐的,但我们只是在做一个概念证明)。

master 监听 6379。当我们对 master 进行故障转移时,我们查询 redis sentinel,现在我的 slave 是 master,所以假设 6380 现在是 master。

但是当我尝试在端口 6380 上写入实例时,它说它无法写入它,因为它是从站。因此,当我查询该实例时,这就是我得到的(为简单起见,部分截断):

似乎哨兵无法将奴隶重新配置为拥有主人?有什么线索吗?

谢谢,佩德罗

0 投票
0 回答
1344 浏览

php - 使用 PHP 中的 Redis Sentinel 进行会话存储

我目前正在完成扩展我们的服务器设置的过程,我们需要重新配置会话以存储在高可用性解决方案中(如果服务器出现故障,让人们注销不是一个选项)。我们正在尝试使用 Redis,因为我们已经在网站的其他部分使用它。我遇到的麻烦是似乎没有对此的任何支持。在我创建自己的会话处理程序类之前,我想我会问是否有其他人知道这个用例是否有项目。

0 投票
2 回答
867 浏览

redis - 更新后日志中的 Redis-Sentinel 错误

在我使用 .dpkg 包在 Debian 上更新redis-server并从版本 3.0.7 到 3.2.7 后,在引导系统时出现以下错误:redis-sentinel

我该如何解决这个问题?

0 投票
1 回答
3432 浏览

redis - 通过 Sentinel 将 Celery 连接到 Redis

如何告诉 celery 我在 redis 上寻找的服务名称?我正在尝试使用 Celery 4 中的内置 Sentinel 支持。我正在传递一个按照文档中所述配置的代理 URL :sentinel://0.0.0.0:26379

但是 redis 似乎抱怨没有被传递一个 service_name:

是否可以使用此 URL 格式传递 service_name ?我努力了

我找不到关于连接 URL 的任何文档——我找到了redis-sentinel-URL但我没有看到它包含在 redis 包中,所以我什至不确定它是否被 redis 使用。

0 投票
1 回答
747 浏览

.net - Redis 副本处理失败的连接字符串

我认为我的 Redis 和 Web 应用程序部署环境有问题。

如果有人可以检查我的配置并处理我觉得棘手的情况,将不胜感激。


Redis配置:

我配置了多个 Redis 副本,一个作为主副本,另一个作为从属副本。让我们为简化起见:

  • server1:配置为主
  • server2 ~ serverN:配置为slave,指server1

Redis sentinel(s) 可能存在也可能不存在于这个结构中,因为我不能保证至少会有服务器。

在我的情况下,只有 server1 保证存在,服务器 2 到 N 不存在。


Web应用部署环境:

我还使用两个连接字符串部署了 .NET Web 应用程序,一个用于主服务器,另一个用于从服务器。网络服务使用

连接字符串如下所示:

  • Redis 主服务器的“server1,password=myredispassword”
  • Redis 从站的“serverN,password=myredispassword”

当然,如果 Web 应用程序有 serverN 的从属连接,则 serverN 保证存在。


问题情况(和问题):

现在我认为可能会出现以下情况:Redis 副本(主或从)已失效,而我的 Web 应用程序通过连接字符串引用该已失效的 Redis 副本。

我认为在这种情况下,Web 应用程序会停止运行,并表示端点无法访问。

是否可以优雅地处理无法到达的端点副本到另一个可到达的端点?我是否需要配置 Redis 哨兵才能执行此操作?或者您甚至会说我尝试访问或处理 Redis 连接的方法不正确?提前感谢您的意见。