راهاندازی 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) موارد زیر را فعال کنید:
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yesپس از اعمال تنظیمات، سرویس Redis را روی تمام نودها ریاستارت کنید:
sudo systemctl restart redis-serverایجاد کلاستر با redis-cli
حداقل به ۶ نود (۳ Master و ۳ Replica) برای یک کلاستر پایدار نیاز است:
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بررسی وضعیت کلاستر
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 آمده است.