检查 redis-py 代码库 readme.md 位于https://github.com/andymccurdy/redis-py/blob/master/README.rst#sentinel-support https://github.com/andymccurdy/redis-py/blob/master/README.rst#sentinel-support
像这样:
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)
主从对象是普通的 StrictRedis 实例,其连接池绑定到 Sentinel 实例。当 Sentinel 支持的客户端尝试建立连接时,它首先查询 Sentinel 服务器以确定要连接的适当主机。如果未找到服务器,则会引发 MasterNotFoundError 或 SlaveNotFoundError。
实际情况是,如果你构建Sentinel for redis集群,则不需要直接连接redis服务器。如上所述,首先连接到Sentinel,然后使用master_for
查询要连接的适当主机。只有这样,如果主服务器宕机了,你的客户端才能被引导到新的主服务器。
And The master-name
在上面的代码中,您应该在sentinel.conf中指定
在
sentinel monitor <master-group-name> <ip> <port> <quorum>
像这样:
sentinel monitor mymaster 127.0.0.1 6379 2