gpt4 book ai didi

python - 哨兵自动发现master

转载 作者:可可西里 更新时间:2023-11-01 11:28:17 27 4
gpt4 key购买 nike

可以通过 sentinel 使用以下方法发现 redis master:

from redis.sentinel import Sentinel
sentinel = Sentinel([('127.0.0.1', 26379)])
master_server = sentinel.master_for('mymaster')

现在向主节点写入数据:

master_server.setex(key, 120, value)
# do something
master_server.setex(key, 120, new_value)

现在,当 # 做某事 时,如果 master_server 崩溃,sentinel 将通过投票将一个 slave 提升为 master。因此,master_server.setex(key, 120, new_value) 将抛出一个 MasterNotFoundError

解决方法是try-catch这个 block ;有没有办法让 master 发现由 redis 自动处理?因为在代码中到处放置 try-catch 会使代码变得冗余和困惑。

最佳答案

Redis sentinel 实际上确实 自动重新发现 master,因为它使用 SentinelConnectionPool .虽然它确实有一些问题——请参阅我的 recent question — 听起来这里的问题是您的 Redis 设置没有成功选出新的主节点。

您是否有奇数个具有适当设置法定人数的哨兵?

https://redis.io/topics/sentinel

查看 redis sentinel 页面以确保您没有遇到一些常见的陷阱。

关于python - 哨兵自动发现master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43392813/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com