رفتن به محتوای اصلی
iServer24 | ارائه‌کننده سرورهای ابری و اختصاصی
راه‌اندازی Redis Cluster برای دسترس‌پذیری بالا (High Availability)

راه‌اندازی Redis Cluster برای دسترس‌پذیری بالا (High Availability)

پایگاه داده
2 دقیقه مطالعه

آموزش راه‌اندازی Redis Cluster برای دسترس‌پذیری بالا، توزیع داده بین چند نود و تحمل خطا در برابر از کار افتادن سرورها.

راه‌اندازی Redis Cluster برای دسترس‌پذیری بالا (High Availability)

در پروژه‌های پرترافیک که Redis نقش کش یا پایگاه داده اصلی را ایفا می‌کند، از کار افتادن یک نود Redis می‌تواند باعث اختلال جدی در سرویس شود. Redis Cluster با توزیع داده بین چند نود و پشتیبانی از Replication، دسترس‌پذیری بالا و تحمل خطا را فراهم می‌کند.

Redis Cluster چگونه کار می‌کند؟

در Redis Cluster، فضای کلید (Key Space) بین ۱۶۳۸۴ اسلات (Hash Slot) تقسیم می‌شود و هر نود مسئول بخشی از این اسلات‌هاست. هر نود اصلی (Master) معمولاً حداقل یک نود فرعی (Replica) دارد تا در صورت از کار افتادن نود اصلی، یکی از Replicaها به‌صورت خودکار جایگزین آن شود.

پیش‌نیاز: نصب Redis

پیش از راه‌اندازی کلاستر، باید Redis روی تمام سرورهای مورد نظر نصب و ایمن‌سازی شده باشد. مراحل کامل نصب و تنظیمات امنیتی اولیه Redis در مقاله آموزش نصب و ایمن‌سازی Redis روی Ubuntu توضیح داده شده است.

پیکربندی نودها برای حالت Cluster

در فایل تنظیمات هر نود Redis (معمولاً /etc/redis/redis.conf) موارد زیر را فعال کنید:

4 خط
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

پس از اعمال تنظیمات، سرویس Redis را روی تمام نودها ری‌استارت کنید:

sudo systemctl restart redis-server
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

ایجاد کلاستر با redis-cli

حداقل به ۶ نود (۳ Master و ۳ Replica) برای یک کلاستر پایدار نیاز است:

4 خط
redis-cli --cluster create \
  10.0.0.1:6379 10.0.0.2:6379 10.0.0.3:6379 \
  10.0.0.4:6379 10.0.0.5:6379 10.0.0.6:6379 \
  --cluster-replicas 1
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

بررسی وضعیت کلاستر

2 خط
redis-cli -c -h 10.0.0.1 -p 6379 cluster info
redis-cli -c -h 10.0.0.1 -p 6379 cluster nodes
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

نکات مهم در پیاده‌سازی

  • حداقل ۳ نود Master برای تشکیل یک کوروم (Quorum) معتبر لازم است.
  • در کنار Cluster، همچنان داشتن یک استراتژی بکاپ منظم برای داده‌های حیاتی ضروری است؛ این موضوع در مقاله بکاپ‌گیری و Disaster Recovery در سرورهای لینوکسی بررسی شده است.
  • کلاینت‌های اپلیکیشن باید از کتابخانه‌هایی استفاده کنند که از Redis Cluster Protocol پشتیبانی می‌کنند.

جمع‌بندی

Redis Cluster راهکاری قدرتمند برای پروژه‌هایی است که به دسترس‌پذیری بالا و مقیاس‌پذیری افقی نیاز دارند. با تقسیم داده بین چند نود و پشتیبانی خودکار از Failover، ریسک از کار افتادن سرویس به‌طور چشمگیری کاهش می‌یابد.

دسترس‌پذیری بالا در سایر لایه‌های پایگاه داده

الگوی دسترس‌پذیری بالا و توزیع داده که در Redis Cluster استفاده می‌شود، در پایگاه‌های داده رابطه‌ای مانند MySQL و MariaDB نیز از طریق Replication و Read Replica پیاده‌سازی می‌شود. جزئیات کامل راه‌اندازی این معماری در مقاله پیکربندی Replication در MySQL و MariaDB آمده است.

زیرساخت ابری برای اجرای همین آموزش

سرور ابری ساعتی را برای Docker، Ubuntu و DevOps راه‌اندازی کنید — پرداخت به میزان مصرف یا ماهانه.

ادامه یادگیری:Docker·Ubuntu·VPS