Redis Sentinel چیست؟ آموزش کامل + نحوه اتصال در پایتون
اگر برای شما هم این سوال پیش آمده که redis sentinel چیست و چه کاربردی دارد، در این مقاله به صورت کامل با ردیس سنتینل، معماری آن، نحوه مدیریت High Availability و همچنین نحوه اتصال به آن در پایتون آشنا خواهید شد.
Redis Sentinel چیست؟
Redis Sentinel یک سیستم مانیتورینگ و مدیریت برای Redis است که وظیفه دارد در صورت از کار افتادن سرور اصلی (Master)، به صورت خودکار Failover انجام دهد و یک سرور Slave را به عنوان Master جدید انتخاب کند.
به بیان ساده، پاسخ سوال redis sentinel چیست این است: سیستمی برای تضمین دسترسپذیری بالا (High Availability) در Redis.
چرا به Redis Sentinel نیاز داریم؟
در حالت عادی اگر تنها یک Redis Server داشته باشیم و آن از کار بیفتد، کل سیستم کش، سشن کاربران و صفها مختل میشود.
- تشخیص خرابی Master
- انجام Failover خودکار
- تبدیل Slave به Master جدید
- هدایت کلاینتها به سرور جدید
وظایف Redis Sentinel
مانیتورینگ (Monitoring)
ردیس سنتینل به صورت مداوم وضعیت Master و Slaveها را بررسی میکند.
اعلان خطا (Notification)
در صورت بروز مشکل، Sentinel میتواند هشدار ارسال کند یا اسکریپت اجرا کند.
Failover خودکار
مهمترین قابلیت Redis Sentinel انجام Failover خودکار است. در صورت Down شدن Master، یک Slave به عنوان Master جدید انتخاب میشود.
Service Discovery
کلاینتها میتوانند از Sentinel بپرسند Master فعلی کدام است و همیشه به سرور صحیح متصل شوند.
معماری Redis Sentinel
ساختار پیشنهادی معمولاً شامل موارد زیر است:
- 1 Master
- 2 Slave
- 3 Sentinel
وجود سه Sentinel باعث جلوگیری از Split Brain و تصمیمگیری دقیقتر میشود.
تفاوت Redis Sentinel و Redis Cluster
| ویژگی | Redis Sentinel | Redis Cluster |
|---|---|---|
| High Availability | دارد | دارد |
| Sharding | ندارد | دارد |
| پیچیدگی | کمتر | بیشتر |
جمعبندی بخش مفهومی
در این بخش بررسی کردیم که redis sentinel چیست و چگونه باعث افزایش پایداری و دسترسپذیری Redis میشود.
نحوه اتصال به Redis Sentinel در پایتون
در این بخش یاد میگیریم چگونه با استفاده از پایتون به Redis Sentinel متصل شویم و همیشه به Master فعال دسترسی داشته باشیم.
پیشنیازها
- نصب بودن Redis Sentinel
- داشتن حداقل یک Master و یک Slave
- نصب پکیج redis در پایتون
نصب کتابخانه redis
pip install redis
اتصال به Redis Sentinel در پایتون
مثال کامل کد
from redis.sentinel import Sentinel
# لیست Sentinel ها
sentinel = Sentinel([
('127.0.0.1', 26379),
('127.0.0.1', 26380),
('127.0.0.1', 26381),
], socket_timeout=0.5)
# دریافت اتصال به Master
master = sentinel.master_for(
service_name='mymaster',
socket_timeout=0.5
)
# دریافت اتصال به Slave (اختیاری)
slave = sentinel.slave_for(
service_name='mymaster',
socket_timeout=0.5
)
# تست اتصال
master.set('name', 'redis sentinel')
value = master.get('name')
print(value.decode())
توضیح کد
- Sentinel([...]) → معرفی لیست Sentinelها
- service_name → نام تعریف شده در sentinel.conf
- master_for() → اتصال به Master فعال
- slave_for() → اتصال به یکی از Slaveها
نمونه تنظیم در sentinel.conf
sentinel monitor mymaster 127.0.0.1 6379 2
کلمه mymaster همان service_name است که در کد پایتون استفاده میشود.
استفاده در Django
from redis.sentinel import Sentinel
SENTINELS = [('127.0.0.1', 26379)]
sentinel = Sentinel(SENTINELS)
REDIS_CLIENT = sentinel.master_for('mymaster', socket_timeout=0.5)
جمعبندی نهایی
در این مقاله بررسی کردیم redis sentinel چیست و چگونه میتوان به آن در پایتون متصل شد. استفاده از Redis Sentinel در پروژههای Production برای جلوگیری از Downtime و افزایش High Availability توصیه میشود.
طراحی سایت
نظرات
شما باید قبل از ارسال نظر در سایت وارد شوید.
هیچ نظری ثبت نگردیده است.