使用 Redis Sentinel 实现高可用
配置 Redis Sentinel,自动管理故障转移并确保服务持续可用
使用 Redis Sentinel 实现高可用 是 CoddyKit 上的免费 Redis Caching & Messaging (Pub/Sub, Streams) 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Redis Caching & Messaging (Pub/Sub, Streams) 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Redis Caching & Messaging (Pub/Sub, Streams) 课程共包含 4 节课。
本课时的部分内容尚未翻译,以英文显示。
High Availability with Sentinel
When using Redis replication, what happens if your master server suddenly fails? Your application might go down!
This is where Redis Sentinel comes in. It's designed to make your Redis deployments highly available by automatically handling master failures.
Sentinel's Key Roles
Redis Sentinel isn't just one process; it's a distributed system of Sentinel instances. Each Sentinel has three main jobs:
- Monitoring: Constantly checks if your master and replica instances are working correctly.
- Notification: Alerts system administrators or other computer programs when a monitored Redis instance goes wrong.
- Automatic Failover: If a master fails, Sentinel can start a failover process where a replica is promoted to master, and other replicas are reconfigured.
Sentinel Architecture Overview
A typical Sentinel setup involves:
- One Redis master instance.
- One or more Redis replica instances.
- At least three Sentinel instances running on separate servers.
The Sentinels constantly communicate with each other and with the Redis instances to maintain a consistent view of the system's health.
Configuring a Sentinel
Each Sentinel instance needs a configuration file, typically named sentinel.conf. Here's a basic example. The key directive is sentinel monitor:
mymaster: The name you give your master set.127.0.0.1 6379: The master's IP and port.2: The quorum, explained next.
# Example sentinel.conf
port 26379
daemonize yes
# Monitor the master named 'mymaster'
sentinel monitor mymaster 127.0.0.1 6379 2
# How long a master must be unreachable before marked DOWN
sentinel down-after-milliseconds mymaster 5000
# Timeout for failover operations
sentinel failover-timeout mymaster 60000Understanding Quorum
The quorum (the 2 in our config) is a crucial concept. It's the minimum number of Sentinels that must agree that a master is down before a failover process can be initiated.
This prevents a single Sentinel (or a network issue affecting only one Sentinel) from triggering an unnecessary failover, ensuring reliability.
Launching a Sentinel Instance
Once your sentinel.conf file is ready, you can start a Sentinel instance using the redis-sentinel command, pointing it to your config file.
You would typically run multiple Sentinels on different machines for true high availability.
redis-sentinel /path/to/sentinel.confMonitoring with Sentinel CLI
You can connect to a Sentinel instance using redis-cli (using the Sentinel's port, e.g., 26379) and query its status. The info sentinel command provides a wealth of information.
redis-cli -p 26379 info sentinelThe Failover Process in Action
When a master fails:
- Sentinels detect the master is unreachable.
- If enough Sentinels (the quorum) agree, they elect a leader Sentinel.
- The leader Sentinel promotes one of the healthy replicas to be the new master.
- The other replicas are reconfigured to replicate from the new master.
- Applications are notified of the new master's address.
Client Connectivity with Sentinel
Applications don't connect directly to the Redis master's IP and port. Instead, they are configured to connect to one or more Sentinel instances.
The client library then asks Sentinel for the current master's address. This means applications don't need to be reconfigured manually after a failover; Sentinel handles it transparently!
Sentinel Feature Check
Which of the following is NOT a primary function of Redis Sentinel?
Sentinel Recap & Next Steps
You've learned that Redis Sentinel is essential for creating highly available Redis deployments. It monitors your instances, performs automatic failovers, and keeps your applications connected even when a master goes down.
By using Sentinel, you significantly reduce downtime and improve the resilience of your Redis-backed applications. Next, we'll explore Redis Cluster for even greater scalability!
常见问题解答
「使用 Redis Sentinel 实现高可用」课时是免费的吗?
是的 — 「使用 Redis Sentinel 实现高可用」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Redis Caching & Messaging (Pub/Sub, Streams) 课程的其余内容,请升级到 CoddyKit PRO。 Redis Caching & Messaging (Pub/Sub, Streams) 课程共包含 4 节课。
「使用 Redis Sentinel 实现高可用」这节课中我会学到什么?
配置 Redis Sentinel,自动管理故障转移并确保服务持续可用 你通过在浏览器中直接运行的动手代码来练习 Redis Caching & Messaging (Pub/Sub, Streams),全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Redis Caching & Messaging (Pub/Sub, Streams) 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Redis Caching & Messaging (Pub/Sub, Streams) 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「使用 Redis Sentinel 实现高可用」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Redis Caching & Messaging (Pub/Sub, Streams) 课中编写并运行代码吗?
能。每节 Redis Caching & Messaging (Pub/Sub, Streams) 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 使用 Redis 复制实现冗余
- 使用 Redis Sentinel 实现高可用
- 使用 Redis Cluster 实现分片
- 客户端连接韧性