فارسی

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

خوشه‌بندی Redis: مقیاس‌پذیری پایگاه‌داده درون-حافظه‌ای شما برای برنامه‌های کاربردی جهانی

در چشم‌انداز دیجیتال پرشتاب امروز، برنامه‌های کاربردی به دسترسی سریع به داده و توانایی مدیریت حجم عظیمی از ترافیک نیاز دارند. پایگاه‌های داده درون-حافظه‌ای (IMDBs) مانند Redis به اجزای ضروری برای دستیابی به این عملکرد تبدیل شده‌اند. با این حال، یک نمونه (instance) منفرد Redis تنها تا حد معینی می‌تواند مقیاس‌پذیر باشد. اینجاست که خوشه‌بندی Redis وارد می‌شود و مقیاس‌پذیری افقی، دسترسی‌پذیری بالا و تحمل خطا را برای برنامه‌های کاربردی توزیع‌شده جهانی شما ارائه می‌دهد.

خوشه‌بندی Redis چیست؟

خوشه Redis یک پیاده‌سازی توزیع‌شده از Redis است که به‌طور خودکار داده‌ها را در چندین گره (node) Redis بخش‌بندی (shard) می‌کند. برخلاف تنظیمات تک-نمونه‌ای Redis، یک خوشه Redis می‌تواند مجموعه‌داده‌هایی را مدیریت کند که از ظرفیت حافظه یک سرور منفرد فراتر می‌روند. همچنین با تکثیر داده‌ها در چندین گره، دسترسی‌پذیری بالا را فراهم می‌کند و تضمین می‌کند که برنامه شما حتی در صورت خرابی برخی از گره‌ها، عملیاتی باقی بماند.

آن را مانند توزیع یک کتابخانه عظیم (داده‌های شما) در چندین شعبه (گره‌های Redis) در شهرهای مختلف تصور کنید. هر شعبه حاوی زیرمجموعه‌ای از کتاب‌ها (داده‌ها) است و اگر یک شعبه بسته شود (خرابی گره)، شعبه‌های دیگر نسخه‌هایی از مهم‌ترین کتاب‌ها (تکثیر داده) را برای ادامه خدمت‌رسانی به جامعه در اختیار دارند.

مزایای کلیدی خوشه‌بندی Redis

معماری خوشه Redis

یک خوشه Redis از اجزای زیر تشکیل شده است:

راه‌اندازی یک خوشه Redis

راه‌اندازی یک خوشه Redis شامل مراحل زیر است:

  1. نصب Redis: اطمینان حاصل کنید که Redis را بر روی تمام سرورهایی که قرار است بخشی از خوشه باشند، نصب کرده‌اید. توصیه می‌شود از آخرین نسخه پایدار Redis برای عملکرد و امنیت بهینه استفاده کنید.
  2. پیکربندی نمونه‌های Redis: هر نمونه Redis را برای اجرا در حالت خوشه پیکربندی کنید. این شامل تنظیم گزینه cluster-enabled به yes در فایل redis.conf است. همچنین باید گزینه‌های cluster-config-file و cluster-node-timeout را پیکربندی کنید.
  3. ایجاد خوشه: از دستور redis-cli --cluster create برای ایجاد خوشه استفاده کنید. این دستور لیستی از نمونه‌های Redis را به عنوان آرگومان می‌گیرد و به‌طور خودکار آنها را برای تشکیل یک خوشه پیکربندی می‌کند. این دستور همچنین اسلات‌های هش را به‌طور خودکار به گره‌های اصلی اختصاص می‌دهد.
  4. افزودن گره‌های کپی: با استفاده از دستور redis-cli --cluster add-node گره‌های کپی را به خوشه اضافه کنید. این دستور آدرس یک گره کپی و آدرس یک گره اصلی را به عنوان آرگومان می‌گیرد. دستور به‌طور خودکار گره کپی را برای تکثیر داده‌ها از گره اصلی پیکربندی می‌کند.
  5. آزمایش خوشه: با اتصال به خوشه با استفاده از redis-cli و انجام برخی عملیات اساسی، مانند تنظیم و دریافت کلیدها، از صحت عملکرد خوشه اطمینان حاصل کنید. همچنین می‌توانید از دستور redis-cli cluster info برای مشاهده وضعیت خوشه و تأیید عملکرد صحیح همه گره‌ها استفاده کنید.

مثال: ایجاد یک خوشه Redis با ۶ گره (۳ اصلی، ۳ کپی)

فرض کنید ۶ سرور با آدرس‌های IP و پورت‌های زیر دارید:

بر روی یکی از سرورها (به عنوان مثال، 192.168.1.101)، دستور زیر را اجرا کنید:

redis-cli --cluster create 192.168.1.101:7000 192.168.1.102:7001 192.168.1.103:7002 192.168.1.104:7003 192.168.1.105:7004 192.168.1.106:7005 --cluster-replicas 1

این دستور یک خوشه با ۳ گره اصلی و ۳ گره کپی ایجاد می‌کند که هر گره اصلی یک کپی دارد.

اتصال به یک خوشه Redis

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

اکثر کلاینت‌های Redis پشتیبانی داخلی برای خوشه‌بندی Redis ارائه می‌دهند. معمولاً باید لیستی از گره‌های اولیه (seed nodes) (یعنی آدرس‌های شناخته‌شده برخی از گره‌های خوشه) را به کلاینت ارائه دهید. سپس کلاینت از این گره‌های اولیه برای کشف بقیه توپولوژی خوشه استفاده می‌کند.

مثال: اتصال به یک خوشه Redis با استفاده از پایتون (redis-py-cluster)

from rediscluster import RedisCluster

# گره‌های راه‌اندازی لیستی از گره‌هایی هستند که کلاینت برای کشف توپولوژی خوشه از آنها استفاده می‌کند.
startup_nodes = [
 {"host": "192.168.1.101", "port": "7000"},
 {"host": "192.168.1.102", "port": "7001"},
 {"host": "192.168.1.103", "port": "7002"}
]

rc = RedisCluster(startup_nodes=startup_nodes, decode_responses=True)

rc.set("foo", "bar")
print(rc.get("foo"))

خوشه Redis در برنامه‌های کاربردی جهانی

خوشه Redis به ویژه برای برنامه‌های کاربردی جهانی که به تأخیر کم و دسترسی‌پذیری بالا در مناطق جغرافیایی توزیع‌شده نیاز دارند، مناسب است. در اینجا برخی از موارد استفاده رایج آورده شده است:

بهترین شیوه‌ها برای خوشه‌بندی Redis

برای اطمینان از عملکرد و قابلیت اطمینان بهینه استقرار خوشه Redis خود، بهترین شیوه‌های زیر را در نظر بگیرید:

جایگزین‌های خوشه‌بندی Redis

در حالی که خوشه‌بندی Redis یک راه حل قدرتمند برای مقیاس‌پذیری Redis است، جایگزین‌های دیگری نیز وجود دارند که بسته به نیازهای خاص شما باید در نظر گرفته شوند:

نتیجه‌گیری

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