ردیس (Redis) یک پایگاه داده است که چندان به ویژگی‌های پایگاه‌های دادۀ دیگر پایبند نیست. اما به عنوان یک مخزن ذخیرۀ دادۀ سریع و انطباق‌پذیر، عملکردی قابل‌توجه دارد.

با کمک سرعت بالایش، ردیس برای پردازش داده‌ها و درخواست‌ها گزینه‌ای عالی است. سیستم همانندسازی (Replication) اختصاصی، گزینه‌هایی برای پایدارسازی (persistence) و امکانات کلاسترینگ (clustering) تنها تعدادی از قابلیت‌های این برنامه هستند.

در این مقاله جهان Redis را با هم بررسی خواهیم کرد.

تاریخ و تکامل ردیس

سالوادور سان‌فیلیپو (Salvatore Sanfilippo) Redis را به عنوان پایگاه داده‌ای اپن‌سورس در سال 2009 ساخت. این برنامه از آن سال تا به امروز تغییرات فراوانی داشته است. جایگزین‌هایی برای پایدارسازی مانند RDB و AOF، پایداری داده‌ها را بیشتر کرده‌اند. همچنین روند همانندسازی (Replication) و کلاسترینگ، تاب‌آوری و انطباق‌پذیری را بهینه می‌کند.

Redis امروزه توانایی تحلیل، پیام‌رسانی و پاسخ‌دهی به‌صورت هم‌زمان را دارد و زبان‌های برنامه‌نویسی بسیاری را پشتیبانی می‌کند.

لازم به ذکر است که Redis همچنان در حال به‌روزرسانی و پیشرفت است.

فایل Config و نصب

فایل Config ردیس برای تنظیم و اصلاح الگوی آن ضروری‌ست. این فایل قابلیت مدیریت و دسترسی کامل پارامترها را، از جمله تنظیم شبکه، مدیریت داده‌های ذخیره‌شده، ارائۀ گزین‌های پایدارسازی و امنیت به کاربر می‌دهد.

با اصلاح فایل Config، کاربر می‌تواند عملکرد و پایداری داده‌ها را با تکنیک‌های پایدارسازی مناسب، بهبود ببخشد.

برای انجام این کار لیست زیر را دنبال کنید:

فایل Config اصلی Redis در بخش نصب بوده و redis.config نام دارد.

امکان تنظیم port number، پایدارسازی داده‌ها و تنظیمات امنیتی از طریق این فایل انجام می‌شوند.

Port ردیس را تنظیم کنید تا روند ارتباط با مشتری را بهبود ببخشید.

نصب مخزن حافظه و تنظیمات مرتبط، مانند افزایش حجم آن را نیز از طریق همین فایل و بر اساس نیازتان تنظیم کنید.

اجزای پایگاه دادۀ Redis

Strings نوع ساده‌ای از داده برای ارائۀ داده‌های متنی و دوگانه هستند.

Lists  مجموعه‌ای از String طبقه‌بندی شده بر اساس میزان حذف و اضافه و المان جستجو هستند.

set  مجموعه‌ای از String طبقه‌بندی نشده است.

Sorted Sets همان set  هستند که به‌نوعی درجه‌بندی شده باشند.

Hashes  به ارائه و ترتیب‌دهی داده‌ها کمک می‌کنند و این کار را به‌وسیله ایجاد نقشه‌ای از String هستند.

Bitmaps  ساختاری متشکل از داده‌ها هستند که راهکاری فشرده برای عملیات مربوط به bits  ارائه می‌دهند.

HyperLogLogs نیز ساختاری متشکل از داده‌ها هستند که برای ارزیابی عناصر متفاوت set  استفاده می‌شوند.

 نقش مشتری و سرور برای Cluster Nodes ردیس

مشتری

مشتری می‌تواند برنامه یا خدماتی باشند که برای کار با داده از Cluster Nodes ردیس استفاده می‌کنند. این مشتری‌ها می‌توانند برای اتصال به Redis از کتابخانۀ Redis یا CLI استفاده کنند.

سرور

Master nodes

Master nodes در Cluster ردیس وظیفۀ عملیات نوشتن را به عهده دارد. هر Master node یک زیرمجموعۀ داده‌های Cluster را زیر نظر دارد و آن‌ها را برای slave nodes همانندسازی می‌کند تا بتواند تاب‌آوری و عملکرد بالا را تضمین کند.

slave nodes

slave nodes داده‌های همانندسازی شده را از Master node و سرورها می‌گیرد و برای پشتیبانی و بک‌آپ ذخیره می‌کند و می‌توانند عملیات خواندن را به طور غیرمستقیم انجام می‌دهد. همچنین اگر هرکدام از Master nodes کار نکند، slave nodes ااز انجام‌شدن آن مطمئن می‌شود.

Sentinel Nodes

Sentinel Nodes بر دو روندی که بالاتر گفتیم، نظارت دارند و در صورت موفق شدن آن‌ها، عملیات Failover را به‌صورت خودکار انجام می‌دهد.

پورت‌هایی که توسط نرم‌افزار ردیس استفاده می‌شوند

پورت‌های داخلی

6379 – پورت پیش‌فرض

این پورت برای برقراری ارتباط بین Cluster Nodes، انتقال داده و شروع فعالیترا به عهده دارد.

6380 – پورت SSL

این پورت به مشتریانی که از طریق SSL یا TLS به Redis متصل می‌شوند، کمک می‌کند.

10000 – 15000 – راه ارتباطی بین Clusters

این پورت‌ها برای برقراری ارتباط بین Cluster استفاده می‌شوند و مدیریت آن‌ها را آسان می‌کنند.

پورت‌های خارجی

12000 – 13000 – پورت پراکسی مشتری

این پورت مدیریت درخواست‌های پراکسی را به عهده دارد.

16379 – پورت نگهبان

برای Failover و نظارت بر فعالیت‌ها استفاده می‌شود.

18000 – 18999 – پورت REST API

این پورت‌ها برای نظارت و مدیریت بر Cluster خارجی استفاده می‌شوند.

پورت‌های فعال

7000 – 7999 – ارتباط فعال

این پورت‌ها هماهنگی بین داده‌ها و استحکام آن‌ها را تضمین می‌کنند.

16380 – پورت رونوشت CRDT

برای برقراری ارتباط با مشتریانی که از داده‌های CRDT استفاده می‌کنند، استفاده می‌شود.

1888 – پورت سرویس جهانی

این پورت برای خدمات در بازۀ جهانی استفاده می‌شود.

مزایا و محدودیت‌های Redis

مزایا

  • ساختار دادۀ چندمنظوره
  • قابلیت‌های بالای مربوط به Cache
  • پیام‌رسانی pub/Sub
  • استفادۀ آسان و یک‌پارچگی
  • عملکرد و انطباق‌پذیری بالا

محدودیت‌ها

  • داده‌ها نوسان دارند.
  • مصرف بالای حجم حافظه
  • عملکرد Single Threaded
  • پیچیدگی فعالیت

سخن پایانی

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