gpt4 book ai didi

python - 如何从哨兵 url 创建 redis python 客户端?

转载 作者:IT王子 更新时间:2023-10-29 06:08:55 24 4
gpt4 key购买 nike

我有 url 作为

BROKER_URL = 'sentinel://192.168.10.1:26379/0;sentinel://192.168.10.2:26379/0;sentinel://192.168.10.3:26379/0'

其中,redis 运行在 192.168.10.1192.168.10.2192.168.10.3 上。一个节点是主节点,其他节点是从节点。如果 master 宕机,其他节点代替 master。

我检查了 redis 客户端,但它没有方法,我们可以像我给的那样提供 url。

我们必须提供主机名和端口。就我而言,master 将是这 3 个中的任何一个。

最佳答案

https://github.com/andymccurdy/redis-py/blob/master/README.rst#sentinel-support 查看 redis-py 代码库 readme.md

像这样:

from redis.sentinel import Sentinel
sentinel = Sentinel([('192.168.10.1', 26379), ('192.168.10.2',26379), ('192.168.10.3',26379)], socket_timeout=0.1)

master = sentinel.master_for('master-name', socket_timeout=0.1)

The master and slave objects are normal StrictRedis instances with their connection pool bound to the Sentinel instance. When a Sentinel backed client attempts to establish a connection, it first queries the Sentinel servers to determine an appropriate host to connect to. If no server is found, a MasterNotFoundError or SlaveNotFoundError is raised.

实际情况是,如果你为redis集群搭建Sentinel,你不需要直接连接redis服务器。如上,首先连接到 Sentinel,然后使用 master_for查询要连接的适当主机。只有这样,如果 master 挂了,你的客户端才能被引导到新的 master。

master-name在上面的代码中,你应该在 sentinel.conf 中指定在

sentinel monitor <master-group-name> <ip> <port> <quorum>

像这样:

sentinel monitor mymaster 127.0.0.1 6379 2

关于python - 如何从哨兵 url 创建 redis python 客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45885881/

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