当前位置: 首页 > 知识库问答 >
问题:

连接到Redis Sentinel集群时使用redis-py的MasterNotFoundError

卢子民
2023-03-14

当我试图按照以下部署指南连接到主节点时,我面临着MasternotFounderRorr:https://docs.bitnami.com/tutorials/deploy-redis-sentinel-production-cluster/

连接主Redis Sentinel节点的代码是:

from redis.sentinel import Sentinel

redis_host = 'redis.default.svc.cluster.local'
redis_port = 26379
sentinel = Sentinel([(redis_host, redis_port)], socket_timeout=0.1, password='abc')
redis_client = sentinel.master_for('mymaster', password='abc')
redis_client.incr('counter', 1)

我面对红魔。哨兵。MasternotFounderRorr:没有为“MyMaster”错误找到master。

我该怎么解决这个?谢了。

共有1个答案

赵钊
2023-03-14

正如这里所报告的,https://github.com/andymccurdy/redis-py/issues/1125设置较低的socket_timeout会导致MasterNotFound错误,因为每个实例都被轮询但没有及时响应。您可以增加超时时间或删除它,以查看是否可以修复它。

 类似资料:
  • 问题内容: 与 那两个工作正常。 使用连接池背后的想法是什么?什么时候使用? 问题答案: 从redis-py docs: 在后台,redis- py使用连接池来管理与Redis服务器的连接。默认情况下,您创建的每个Redis实例将依次创建自己的连接池。通过将已创建的连接池实例传递给Redis类的connection_pool参数,可以覆盖此行为并使用现有的连接池。您可以选择执行此操作,以实现客户端

  • 由于单个redis实例不符合我的要求,我选择了redis cluster。我用三个节点组成集群,并将数据填充到集群中。当我使用JedisCluster从集群获取数据时,它比单个实例花费更多的时间。那么,将绝地与redis星系团连接起来的正确方式是什么呢。我如何利用连接池将绝地与redis集群连接起来?

  • 我使用spring boot data redis连接到redis群集,使用版本2.1.3,配置如下: 但是,在操作过程中,始终会收到警告异常消息,如下所示: 这似乎是莴苣的问题,如何映射远程主机

  • 我已经从源代码安装和编译了Redis,并试图连接到Amazon ElastiCache(Redis)集群。 我可以毫无问题地连接到默认的本地主机,但尝试连接到AWSendpoint会导致无限的挂起。 默认情况下: 现在,这是连接到endpoint的尝试,来自AWS留档主题的副本: 这会无限挂起,而不会向stderr/stdout发出任何消息。 (请注意,这是一个endpoint名称示例;我已验证我

  • 我已经使用以下指南成功地设置了一个密码保护的redis群集: 我使用ruby和下面的连接字符串…我做错了吗? 我得到的错误是:

  • 我试图从作为芹菜代理的单一AWS弹性缓存(Redis)服务器转移到Redis集群。问题是-在芹菜或redis-py留档中,我找不到连接到AWS RedisCluster的方法。 芹菜用来与redis服务器通信的redis py可以配置为使用redis Sentinel,但AWS不支持它(至少我在AWS ElastiCache文档中没有找到Sentinel支持)。 那么,有没有一种方法可以使用Red