خانه bread crumb arrow icon وبلاگ bread crumb arrow icon نحوه راه اندازی Redis Replication Cluster

آموزش راه‌اندازی Redis Replication Cluster برای پایداری و مقیاس‌ پذیری

آموزش Redis Replication Cluster برای مقیاس‌ پذیری
مبینا صحرائی
مدت زمان مطالعه : 8 دقیقه
0 کامنت
۱۴۰۴/۰۹/۱۶

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

توی این مقاله می‌ خوایم خیلی راحت، بدون پیچوندن و اصطلاحات سنگین یاد بگیریم چطور یک Redis Replication Cluster استاندارد و پایدار راه بندازیم. از معرفی ساختار Master–Replica گرفته تا تنظیمات حیاتی و تست نهایی، همه‌ چی رو با هم پیش می‌ بریم.

نحوه راه اندازی Redis Replication Cluster

راه‌ اندازی Redis Replication Cluster (دستی)

1- نصب Redis روی همه گره‌ ها

روی تمام سرورها (Master و Replica ها)، Redis رو نصب کنید:

sudo apt update
sudo apt install redis-server -y

راه‌ اندازی Redis Replication Cluster - نصب Redis روی همه گره‌ ها

2- پیکربندی Master

فایل کانفیگ رو باز کنید:

sudo nano /etc/redis/redis.conf

و موارد زیر را اصلاح کنید:

  • تنظیم bind روی IP LAN

مثلاً:

bind 10.42.0.247
  • خاموش کردن protected-mode (در شبکه داخلی)
protected-mode no
  • تنظیم رمز عبور
requirepass your_password_here
  • فعال‌ کردن AOF برای جلوگیری از از دست رفتن داده
appendonly yes

Redis رو ری‌ استارت کنید:

sudo systemctl restart redis

راه‌ اندازی Redis Replication Cluster - ری استارت Redis

3-  پیکربندی Replica ها

روی هر Replica:

sudo nano /etc/redis/redis.conf

موارد زیر رو تغییر بدید:

  • تنظیم Master برای اتصال

مثال:

replicaof 10.42.0.247 6379
  • اگه Master پسورد داره:
requirepass your_password_here masterauth your_password_here

ری‌ استارت:

sudo systemctl restart redis

راه‌ اندازی Redis Replication Cluster - ری استارت Redis

4- تست Replication

روی Master و Replica ها:

redis-cli INFO replication

باید چیزی مثل این ببینید:

  • روی Master: لیست Replica ها

  • روی Replica: وضعیت sync با Master

راه‌ اندازی Redis Replication Cluster - تست Replication

افزودن High Availability با Redis Sentinel

Replication به‌ تنهایی failover انجام نمیده و ما برای failover اتوماتیک از Sentinel استفاده می‌ کنیم. Sentinel حداقل سه نود نیاز داره:

1- ساخت فایل Sentinel

روی هر ماشین Sentinel:

sudo nano /etc/redis/sentinel.conf

و این رو وارد کنید:

port 26379
sentinel monitor mymaster 10.42.0.247 6379 2
sentinel auth-pass mymaster your_password_here
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
sentinel parallel-syncs mymaster 1

راه‌ اندازی Redis Replication Cluster - ساخت فایل Sentinel

2- اجرای Sentinel

روی هر نود Sentinel:

redis-sentinel /etc/redis/sentinel.conf

راه‌ اندازی Redis Replication Cluster - اجرای Sentinel

3- اتصال برنامه به Sentinel

به‌ جای اتصال مستقیم به Master، تو برنامه این رو قرار بدید:

sentinel1:26379,sentinel2:26379,sentinel3:26379

برنامه همیشه نود Master رو خودش پیدا میکنه.

راه‌ اندازی Redis Replication Cluster - اتصال برنامه به Sentinel

ساخت Redis Cluster (Sharding + Replication)

این مرحله برای پروژه هاییه که داده‌ های زیادی دارن و میخوان بار بین چند نود تقسیم بشه و به Replication + Sharding همزمان نیاز دارن:

1- ساخت پوشه برای نودها

مثلاً برای 6 نود (3 Master و 3 Replica):

mkdir -p /redis/7000 /redis/7001 /redis/7002 /redis/7003 /redis/7004 /redis/7005

2- ساخت redis.conf برای هر نود

مثال فایل کانفیگ نود 7000:

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
bind 10.42.0.247

راه‌ اندازی Redis Replication Cluster - ساخت redis.conf برای هر نود

همین فایل رو با پورت‌ های دیگه تو پوشه‌ های دیگه ایجاد کنید.

3- اجرای نود های Redis

redis-server /redis/7000/redis.conf
redis-server /redis/7001/redis.conf
redis-server /redis/7002/redis.conf
redis-server /redis/7003/redis.conf
redis-server /redis/7004/redis.conf
redis-server /redis/7005/redis.conf

راه‌ اندازی Redis Replication Cluster - اجرای نود های Redis

4- ایجاد Cluster

تمام IP ها و پورت‌ ها رو با هم بسازید:

redis-cli --cluster create \
10.42.0.247:7000 10.42.0.247:7001 10.42.0.247:7002 \
10.42.0.247:7003 10.42.0.247:7004 10.42.0.247:7005 \
--cluster-replicas 1

راه‌ اندازی Redis Replication Cluster - ایجاد Cluster

این یعنی 3 نود Master و 3 Replica. کلستر بعد از ساخت، به‌ صورت خودکار sharding رو انجام میده.

مزایای Redis

  • سرعت بالا: همه چیز تو حافظه، جواب‌ ها در کسری از ثانیه.

  • ساختارهای داده متنوع: String، List، Hash، Set و Streams.

  • پایداری و دسترس‌ پذیری: Master–Replica + Sentinel بدون وقفه کار می‌ کنه.

  • مقیاس‌ پذیری آسان: Cluster و Sharding برای پروژه‌ های بزرگ.

  • سازگاری با زبان‌ ها: Python، Java، Node.js، PHP و خیلیای دیگه.

چالش‌ های Redis

  • رم محدود: همه داده‌ها تو حافظه، نیاز به RAM کافی.

  • مدیریت پیچیده: Cluster و Failover تو پروژه‌های بزرگ نیاز به دانش داره.

  • پایداری حساس: AOF/RDB باید درست کانفیگ بشه، وگرنه داده‌ ها ممکنه از بین برن.

  • بار نوشتن سنگین: Write-heavy Apps باید تنظیمات replication درست باشه.

  • امنیت: نیاز به رمز عبور و firewall؛ Redis به‌ صورت پیش‌ فرض امن نیست.

سخن آخر

راه‌ اندازی یه Redis Replication Cluster شاید در نگاه اول کمی پیچیده به‌ نظر برسه اما وقتی قدم‌ به‌ قدم جلو برید، می‌ بینید چقدر میتونه عملکرد و پایداری پروژه‌ تون رو متحول کنه. از یک Master–Replica ساده گرفته تا Sentinel و حتی Sharding واقعی هر کدوم یک لول جدید از اطمینان و سرعت رو براتون به همراه میاره.

پس اگه می‌ خواید پروژه‌ تون همیشه در اوج سرعت بمونه و حتی در لحظات بحرانی هم خم به ابروش نیاد الان بهترین زمانه که Redis رو جدی‌ تر بگیرید و این معماری‌ ها رو وارد کارتون کنید.

این پست را به اشتراک بگذارید
سوالات متداول راه اندازی Redis Replication Cluster

Replica ها می‌ توانند نقش Master را به‌ طور خودکار یا دستی übernehmen کرده و سرویس را ادامه دهند.

خیر، با چند تنظیم ساده در فایل کانفیگ و اجرای دستورات پایه‌ ای، می‌ توان آن را فعال کرد.

بله، یکی از رایج‌ ترین معماری‌ ها برای مقیاس‌ پذیری و پایداری Redis در محیط‌ های واقعی است.

0

دیدگاه و پرسش