问题标签 [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 投票
0 回答
1245 浏览

redis - Redis services loses connection every day in same time

We use a Redis (version 2.8) with Windows in our production servers. And have next "master-slave"configuration:

  • 3 services in separate servers (1 master and 2 slaves)
  • 3 sentinels in each server

Until we do not have a lot of loading and big size of data, and replication works as we need. BUT every day we have strange behaviour. In Redis-service log we see:

IPs of our servers:

---.--.--.1

---.--.--.2

---.--.--.3

In two other servers logging same. But instead

logged


In sentinel logs next:


This occurs ONLY 1 time per day in begin of day, but not in certain fixed time (can start in 00:12:00 / 00:15:00/ 00:17:00 etc.) Regarding redis-sentinel configuration we have just this

In redis-servers configuration actually we use default configuration almost (Just changed "maxheap" and "maxmemory").

I had found that possibly cases of this can be not enough replication timeout (repl-timeout = 60 sec by default) and client buffer limit ("client-output-buffer-limit"). But it is not our cases because we have very quickly replication (about 1 sec) and until small size of data. Also we have checked physical connection to our servers(ports) in time of this issue -> Connection is always good...

So who have any ideas about this regular lost connection and start failover process without reason??

0 投票
1 回答
1263 浏览

django - 如何使用 Django 对 Redis 进行故障转移

我想做的是用 Django 对 Redis 进行故障转移,但找不到方法。

我的设置如下:

  • 我使用 Redis 作为会话后端。
  • 我在主从关系中设置了两台 Redis 服务器,当主服务器失败时,从服务器自动成为主服务器(使用 Sentinel)

我像这样设置settings.py

我希望django正常只使用master,连接不上master时自动切换到slave。

我怎么能通过编辑 settings.py 来做到这一点,还是应该采取另一种方式?

0 投票
1 回答
15419 浏览

redis - 开源 Redis 集群和 Redis labs 企业集群有什么区别?

我们计划将 Redis 用作集中式和高可用性缓存,因此我们研究了 Redis Labs Enterprise Cluster 和使用 Redis 以及 twemproxy 和 sentinel 的本土集群式设置。在研究 RELC 时,我们偶然发现了这个链接:

https://redislabs.com/redis-enterprise-documentation/rlec-compatibility/compatibility-with-open-source-redis-cluster

其中说 - RLEC 可与任何标准 Redis 客户端一起使用,包括独立的 Redis 客户端和 Redis 集群客户端。

究竟什么是开源 Redis 集群,我该如何使用它?这与独立的 Redis 有什么不同?为什么要在开源版本可用时使用 RELC,仅用于支持?我没有找到任何详细说明差异的来源,因此如果有人使用过其中一种解决方案,请解释为什么选择其中一种。

0 投票
1 回答
350 浏览

redis - Redis 哨兵故障转移配置更改

我有一个 Redis集群配置,有一个主服务器和 2 个从服务器。我想fsync:always在主服务器上启用 AOF ( ) 以获得完整的持久性,而在两个从服务器中启用 RDB。我的问题是,万一主人失败了,其中一个奴隶被选为新主人;旧的主配置是否也会被复制到新的主配置中。而且,当旧的master作为新的slave重新启动时,redis哨兵会自动将slave的配置复制到新的slave吗?

0 投票
2 回答
1386 浏览

linux - Redis Sentinel 用于监控目的?通知脚本触发太多次

就我的目的而言,我只想要一个运行的 redis 实例和一个 redis 哨兵。我正在运行 Redis 3.0.6。Mysentinel.conf是所有默认值,除了 quorum 为 1 并且通知脚本行未注释:sentinel notificication-script mymaster /etc/redis/notify_me.sh. 在里面notify_me.sh我执行了一个 python 脚本,用于测试目的只是说print "HEY SOMETHING IS UP WITH REDIS"

我只想将 redis sentinel 用于监视目的。稍后,我将在 python 脚本中写一些东西,当 redis 出现故障时,它会通过电子邮件/短信给我。然而,就像现在一样,它的发射太频繁了。我只想在哨兵确定redis已经死亡时收到一次消息。现在当我启动它时,该语句在开始时打印一次,然后在 failover-state-select-slave 之后再打印几次

我不希望它在一开始就打印,我只希望它在服务器死机时打印一次,这样我以后只会收到一封电子邮件/文本。任何人,对我能做什么有任何提示吗?谢谢!

0 投票
2 回答
3786 浏览

c# - 在 C# 中使用 Redis Sentinel

我有一个主从配置,有两个奴隶和三个哨兵。如果我尝试使用命令行的命令一切正常。但是我在为 C# 配置它时遇到了一些问题。我正在使用 StackExchange.Redis 库。但我不明白我应该怎么做才能从主人那里获取/设置钥匙。我应该手动找到主人然后获取或设置密钥还是自动完成?最好的方法是什么?每次我想获取/设置密钥时,我应该检查谁是主人?现在我只做了这个,我留下了我的另一个代码,因为它只有一个主人。

我在端口 26379 有三个哨兵之一。抱歉,我有点困惑如何将它与 C# 一起使用。

0 投票
3 回答
1498 浏览

redis - Redis Sentinel master 没有立即降级为 slave

我有一个包含三个 Redis 实例(一个主实例和两个从属实例)和三个 Sentinel 实例的架构。在它前面有一个 HaProxy。在主 Redis 实例关闭之前一切正常。Sentinel 正确选择了新主人。但是,旧的主服务器(现在已关闭)没有重新配置为从服务器。结果,当该实例再次启动时,我在短时间内(大约 11 秒)有两个主人。在那之后,该实例被正确降级为从属。

它不应该这样工作吗,当主人倒下时,它会立即降级为奴隶?有了这个,当它再次启动时,它会立即成为奴隶。我知道(从 Redis 2.8 开始?)有 CONFIG REWRITE 功能,因此当 Redis 实例关闭时无法修改配置。

在一段时间内拥有两个 master 对我来说是个问题,因为 HaProxy 在很短的时间内不是向一个 master Redis 发送请求,而是在这两个 master 之间进行负载平衡。

有什么办法可以立即将失败的主设备降级为从设备?

显然,我更改了 Sentinel 超时。

以下是 master 宕机后来自 Sentinel 和 Redis 实例的一些日志:

哨兵

雷迪斯

0 投票
2 回答
834 浏览

docker - Redis 哨兵 Docker 设置

基本上,我正在尝试设置一个 Redis-sentinel docker 实例,并希望从我的应用程序容器中进行调用。我正在运行的问题是 - redis-sentinel 容器链接到应用程序容器。

因此,最初应用程序向哨兵进程询问有关 redis 主服务器的信息。然后哨兵说它是“127.0.0.1”。但是应用程序容器假定它是容器本地的。这可以通过在哨兵进程开始时传递的announce-ip/announce-port 参数来克服。然而,问题是这样的——

redis-sentinel 容器尝试在链接建立之前启动。因此,即使在哨兵进程启动网络接口期间,链接 IP 也不可用。

我能想到的一种解决方案是忙于等待网络接口建立。因此,问题归结为“源容器如何发现其新建立的网络接口?是否有任何 docker 设置在源容器上以便它发现不同的链接?”

链接都在 docker-compose 文件中进行管理。

如果还有其他简单的解决方案,我也欢迎尝试。

0 投票
1 回答
1336 浏览

ruby - 使用 kubernetes 上的哨兵连接到 redis 集群

我已经使用此处的指南成功设置了受密码保护的 redis 集群:

http://kubernetes.io/v1.1/examples/redis/

我可以使用 很好地连接到哨兵redis-cli,但即使我已经暴露了哨兵,我也无法连接到 redis 主/从。

我正在使用 ruby​​ 和以下连接字符串。我做错了吗?

我得到的错误是:

0 投票
1 回答
920 浏览

docker - 如何在单独的 docker 机器上使用 docker 设置 redis/sentinel 复制/监控?

假设我有 3 台独立的机器:

我想用它docker-compose来轻松地将主机或从机部署到这三台机器之一。现在我的 docker-compose.yml 文件看起来像这样:

我应该如何修改我的 docker-compose.yml 文件以使其工作?最后,我希望能够启动这样的容器,例如:

我看到了一些带有 redis + docker + sentinel 设置的存储库,但它们都在同一个 docker 主机上运行所有实例......