לעתים קרובות אנו נתקלים במצב: מאסטר ה-Redis נופל, והאפליקציה מאבדת קאש או סשנים למשך מספר דקות. מעבר ידני ל-replica אורך 5–15 דקות של downtime, טרנזקציות אבודות וסטרס. ללא אוטומציה, יש צורך להתחבר ידנית לשרת, להריץ SLAVEOF NO ONE, ולבצע קונפיגורציה מחדש של יישומי הלקוח. זה גוזל זמן ומועד לשגיאות, במיוחד בלילות או בסופי שבוע. הפתרון הוא Redis Sentinel: מערכת שמזהה אוטומטית כשל במאסטר, מקדמת מאסטר חדש, ומודיעה ללקוחות. Sentinel מהיר פי 10 ממעבר ידני—ה-failover אורך 10-20 שניות. ספריות לקוח כמו phpredis ו-predis תומכות בהפנייה אוטומטית למאסטר החדש ללא שינויי קוד. עם קונפיגורציה נכונה, האפליקציה מאבדת לכל היותר 20 שניות של חיבור לפני שהיא מתחדשת עם ה-replica החדש.
למה שלושה Sentinels?
Sentinel משתמש באלגוריתם הצבעה: כאשר הקשר עם המאסטר אובד, כל Sentinel מציע לקדם replica. החלטה מתקבלת רק עם quorum—רוב קולות. עם שני Sentinels, תיתכן תופעת split-brain (כל אחד מחשיב את המועמד שלו כמאסטר). שלושה שרתים עם quorum = 2 מבטיחים failover תקין.
כיצד להגדיר Redis Master ו-Replica ב-6 שלבים
- התקן Redis על כל שלושת השרתים (גרסה זהה, לדוגמה 7.2).
- הגדר את המאסטר—הגדר סיסמאות, מגבלת זיכרון, אפשר AOF.
- הגדר replicas—הוסף פרמטר
replicaof <master-ip> 6379. - הגדר Sentinel—צור
sentinel.confעם הגדרות monitor, סיסמה ו-timeout. - הפעל Sentinel על כל השרתים עם
redis-sentinel /etc/redis/sentinel.conf. - בדוק את הסטטוס—הרץ
SENTINEL mastersכדי לוודא שהמאסטר מזוהה.
דוגמה לקונפיגורציית מאסטר (/etc/redis/redis.conf):
bind 0.0.0.0
port 6379
requirepass RedisPassword123
masterauth RedisPassword123
maxmemory 4gb
maxmemory-policy volatile-lru
appendonly yes
appendfsync everysec
protected-mode noקונפיגורציית ה-Replica זהה אך יש להוסיף bind 0.0.0.0 port 6379 requirepass RedisPassword123 masterauth RedisPassword123 maxmemory 4gb maxmemory-policy volatile-lru appendonly yes appendfsync everysec protected-mode no ו-replicaof <master-ip> 6379.
דוגמה לקונפיגורציית Sentinel (replica-read-only yes על כל שרת, רק /etc/redis/sentinel.conf משתנה):
port 26379
daemonize yes
logfile /var/log/redis/sentinel.log
sentinel monitor mymaster <master-ip> 6379 2
sentinel auth-pass mymaster RedisPassword123
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 60000
sentinel notification-script mymaster /opt/redis/notify.sh
sentinel announce-ip <server-ip>
sentinel announce-port 26379 איך לבדוק failover ללא סיכון?
אנו ממליצים לדמות לפני הייצור:
- עצור את המאסטר:
sentinel announce-ip. - צפה בלוגים של Sentinel—ה-failover אמור להתחיל תוך 5–15 שניות.
- בדוק את המאסטר החדש:
port 26379 daemonize yes logfile /var/log/redis/sentinel.log sentinel monitor mymaster <master-ip> 6379 2 sentinel auth-pass mymaster RedisPassword123 sentinel down-after-milliseconds mymaster 5000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 60000 sentinel notification-script mymaster /opt/redis/notify.sh sentinel announce-ip <server-ip> sentinel announce-port 26379—השדהsystemctl stop redisישתנה. - הפעל שוב את המאסטר הישן:
SENTINEL master mymaster—הוא יהפוך אוטומטית ל-replica של המאסטר החדש.
טעויות נפוצות בבדיקות:
- סיסמאות לא מאומתות—failover עלול להיכשל עקב auth-pass.
- ערך גדול מדי של down-after-milliseconds—עיכוב עד 30 שניות.
- חסר notification-script—לא תדע על שינוי מאסטר.
מה לעשות אם Sentinel לא מצליח להגיע ל-quorum?
בדוק קישוריות רשת בין השרתים (פורטים 26379 חייבים להיות פתוחים). ודא שהקונפיגורציה כוללת `sentinel announce-ip` נכון. אם השרתים מאחורי NAT, ייתכן שיידרשו כתובות IP חיצוניות מפורשות. לניפוי באגים, השתמש ב-`SENTINEL ckquorum mymaster`.השוואה: Sentinel מול Redis Cluster
| קריטריון | Redis Sentinel | Redis Cluster |
|---|---|---|
| נפח נתונים | נכנס לזיכרון של שרת אחד | עולה על זיכרון של שרת אחד |
| סבילות לתקלות | Failover אוטומטי | Failover אוטומטי ו-resharding |
| מיקום כתיבה | רק מאסטר | כל צומת (sharding) |
| מורכבות הגדרה | נמוכה | גבוהה |
| פעולות multi-key | תמיכה מלאה | מוגבל לאותו slot |
עבור 90% מהפרויקטים עם נפחי נתונים עד 64 GB, Sentinel הוא הבחירה האופטימלית.
השוואת זמני downtime
| שיטה | זמן downtime ממוצע |
|---|---|
| מעבר ידני | 10 דקות |
| Redis Sentinel | 15 שניות |
על ידי אוטומציה, אתה חוסך עשרות שעות בשנה ומבטל שגיאות אנוש.
מה כלול בהתקנת turnkey
אנו מספקים:
- קונפיגורציה של Master+Replica+Sentinel על 3 שרתים
- אימות מנגנון quorum ו-failover
- הגדרת התראות (Telegram, אימייל) על שינוי מאסטר
- סקריפט לבדיקת failover
- אינטגרציית לקוח (Laravel, Symfony, PHP רגיל)
- תיעוד תפעולי
יישמנו Sentinel ביותר מ-50 פרויקטים—הניסיון מראה ש-80% מהתקלות נפתרות אוטומטית ללא התערבות מהנדס. לפי התיעוד הרשמי של Redis Sentinel, קונפיגורציה זו מבטיחה זמינות של 99.9% כשהיא מוגדרת כראוי.
לוח זמנים ואחריות
התקנה סטנדרטית של Sentinel עם שלושה שרתים, בדיקת failover ואינטגרציה אורכת 1 עד 2 ימי עסקים. העלות מחושבת באופן אישי. ההשקעה מחזירה את עצמה דרך הפחתת downtime. אנו מציעים אחריות ל-30 יום על פעולה תקינה של מנגנון הסבילות לתקלות.
הזמן התקנת Redis Sentinel—ותשכח ממעברים ידניים. קבל ייעוץ מהנדס להערכת עלות לפרויקט שלך.
הערה: בקונפיגורציות שלמעלה, השתמש בסיסמה ובכתובות IP משלך. אל תשכח לפתוח פורטים 6379 (Redis) ו-26379 (Sentinel) בחומת האש.







