Redis Cluster چیست؟ آموزش اتصال با پایتون و Django + تفاوت با Redis Sentinel
Redis Cluster یک راهکار مقیاسپذیر و توزیعشده برای پایگاه داده Redis است که امکان **Sharding** و **High Availability** را به صورت همزمان فراهم میکند. در این مقاله به معرفی Redis Cluster، آموزش اتصال با پایتون و Django و تفاوت آن با Redis Sentinel میپردازیم.
Redis Cluster چیست؟
Redis Cluster به شما امکان میدهد دادهها را بین چندین نود Redis توزیع کنید و بدین ترتیب **ظرفیت و عملکرد سیستم را افزایش دهید**. در مقابل Redis Sentinel که فقط High Availability ارائه میدهد، Redis Cluster علاوه بر Failover خودکار، قابلیت **Sharding** برای مدیریت حجم بالای داده را فراهم میکند.
مزایای Redis Cluster
- مقیاسپذیری افقی با اضافه کردن نودهای جدید
- High Availability با Failover خودکار
- Sharding دادهها بین نودهای مختلف
- پشتیبانی از حجم بالای داده و تراکنشها
تفاوت Redis Cluster و Redis Sentinel
| ویژگی | Redis Sentinel | Redis Cluster |
|---|---|---|
| High Availability | دارد | دارد |
| Sharding | ندارد | دارد |
| پیچیدگی | کمتر | بیشتر |
| کاربرد اصلی | افزایش دسترسپذیری سرور تکی | مقیاسپذیری و مدیریت حجم دادههای بزرگ |
اتصال به Redis Cluster با پایتون
برای اتصال به Redis Cluster در پایتون از کتابخانه redis-py-cluster استفاده میکنیم.
نصب کتابخانه
pip install redis-py-cluster
مثال اتصال به Redis Cluster
from rediscluster import RedisCluster
# لیست نودهای Cluster
startup_nodes = [
{"host": "127.0.0.1", "port": "7000"},
{"host": "127.0.0.1", "port": "7001"},
{"host": "127.0.0.1", "port": "7002"}
]
# اتصال به Cluster
rc = RedisCluster(startup_nodes=startup_nodes, decode_responses=True)
# تست اتصال
rc.set("name", "Redis Cluster")
print(rc.get("name"))
توضیح کد
- startup_nodes → لیست نودهای اولیه برای اتصال به Cluster
- RedisCluster(...) → ایجاد اتصال به Cluster
- با Failover خودکار و Sharding، دادهها به صورت توزیعشده بین نودها مدیریت میشوند
اتصال به Redis Cluster در Django
برای استفاده از Redis Cluster در Django میتوانید از پکیج django-redis با تنظیمات Cluster استفاده کنید.
نصب پکیج
pip install django-redis
تنظیمات Django (settings.py)
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": [
"redis://127.0.0.1:7000/0",
"redis://127.0.0.1:7001/0",
"redis://127.0.0.1:7002/0",
],
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.ClusterClient",
}
}
}
با این تنظیمات، Django میتواند از Redis Cluster برای کش یا ذخیره سشنها به صورت توزیعشده استفاده کند.
جمعبندی
Redis Cluster یک راهکار پیشرفته برای مدیریت دادههای توزیعشده و مقیاسپذیر در Redis است.
در حالی که Redis Sentinel تنها برای High Availability مناسب است، Redis Cluster علاوه بر Failover، امکان Sharding و مدیریت حجم بالای داده را نیز فراهم میکند.
با استفاده از کتابخانههای redis-py-cluster و django-redis میتوان به راحتی از Redis Cluster در پایتون و Django استفاده کرد.
طراحی سایت
نظرات
شما باید قبل از ارسال نظر در سایت وارد شوید.
هیچ نظری ثبت نگردیده است.