Redis Sentinel 命令

redis-py 可以与 Redis Sentinel 一起使用来发现 Redis 节点。您需要至少运行一个 Sentinel 守护进程才能使用 redis-py 的 Sentinel 支持。

连接示例(假设 redis redis 在下面列出的端口上)

>>> from redis import Sentinel
>>> sentinel = Sentinel([('localhost', 26379)], socket_timeout=0.1)
>>> sentinel.discover_master('mymaster')
('127.0.0.1', 6379)
>>> sentinel.discover_slaves('mymaster')
[('127.0.0.1', 6380)]
class redis.commands.sentinel.SentinelCommands[source]

包含特定于 redis sentinal 的命令的类。此类用作 mixin。

sentinel(*args)[source]

Redis Sentinel 的 SENTINEL 命令。

sentinel_ckquorum(new_master_name)[source]

检查当前 Sentinel 配置是否能够达到故障转移主服务器所需的仲裁数量,以及授权故障转移所需的多数数量。

此命令应在监控系统中使用,以检查 Sentinel 部署是否正常。

sentinel_failover(new_master_name)[source]

强制执行故障转移,就好像主服务器不可访问一样,并且无需向其他 Sentinel 请求同意(但是,将发布新版本的配置,以便其他 Sentinel 更新其配置)。

sentinel_flushconfig()[source]

强制 Sentinel 将其配置重写到磁盘,包括当前 Sentinel 状态。

通常,Sentinel 每次其状态发生变化时都会重写配置(在跨重启持久保存到磁盘的状态子集的上下文中)。但是,有时配置丢失可能是由于操作错误、磁盘故障、软件包升级脚本或配置管理器造成的。在这些情况下,强制 Sentinel 重写配置文件的方法非常有用。

即使之前的配置文件完全丢失,此命令也能正常工作。

sentinel_get_master_addr_by_name(service_name)[source]

返回给定 service_name 的 (主机, 端口) 对。

sentinel_master(service_name)[source]

返回一个包含指定主服务器状态的字典。

sentinel_masters()[source]

返回一个包含每个主服务器状态的字典列表。

sentinel_monitor(name, ip, port, quorum)[source]

将一个新的主服务器添加到 Sentinel 进行监控。

sentinel_remove(name)[source]

从 Sentinel 的监控中移除一个主服务器。

sentinel_reset(pattern)[source]

此命令将重置所有名称匹配的主服务器。模式参数是一个 glob 风格的模式。

重置过程将清除主服务器中的所有先前状态(包括正在进行的故障转移),并删除与主服务器关联的所有从服务器和哨兵。

sentinel_sentinels(service_name)[source]

返回 service_name 的哨兵列表。

sentinel_set(name, option, value)[源代码]

为给定的主服务器设置哨兵监控参数

sentinel_slaves(service_name)[源代码]

返回 service_name 的从服务器列表