آموزش استفاده از Redis در Asp Core با استفاده از داکر

redis در asp core
redis در asp core

Redis چیست؟

Redis که مخفف Remote Dictionary Server است یک منبع ذخیره Open source و in-memory یا درون حافظه ای به صورت key-value است که توسط میلیون ها توسعه دهنده به عنوان پایگاه داده، حافظه کش توزیع شده، موتور استریم و Message Broker استفاده می شود.

پایگاه داده in-memory  یا درون حافظه ای چیست؟

پایگاه داده in-memory  یا درون حافظه ای، پایگاه داده ای است که کل مجموعه داده را در RAM نگه می دارد. این بدان معناست که هر بار که یک پایگاه داده را پرس و جو می کنید یا داده ها را در یک پایگاه داده به روز می کنید، فقط به حافظه اصلی دسترسی دارید. بنابراین، هیچ دیسکی در این عملیات دخیل نیست. و این عالی است، زیرا حافظه اصلی بسیار سریعتر از هر دیسکی است.

Message Broker چیست؟

Message Broker نرم افزاری است که برنامه ها، سیستم ها و سرویس ها را قادر می سازد با یکدیگر ارتباط برقرار کرده و اطلاعات را تبادل کنند. مسیج بروکر این کار را با ترجمه پیام ها بین پروتکل های پیام رسانی رسمی انجام می دهد.

پایگاه داده key-value چیست؟

پایگاه داده key-value یک الگوی ذخیره سازی داده است که برای ذخیره، بازیابی و مدیریت آرایه های انجمنی طراحی شده است و ساختار داده ای که امروزه بیشتر به عنوان dictionary یا hash table شناخته می شود به صورت key-value است.

Redis ساختارهای داده‌ ای مانند رشته ها، هش ‌ها، لیست ها، set ها،bitmap ها، هایپرلاگ ها، ایندکس های مکانی و استریم ها را فراهم می ‌کند. Redis دارای تکثیر داخلی، اسکریپت ‌نویسی Lua، تراکنش ‌ها و سطوح مختلف پایداری روی دیسک است و دسترسی بالایی را از طریق Redis Sentinel و پارتیشن‌ بندی خودکار با Redis Cluster فراهم می ‌کند.

بنابراین Redis را می توان به صورت منولوتیک، سیستم توزیع شده یا به عنوان یک کلاستر از گره ها با تقسیم بندی استفاده کرد.

Redis چگونه کار می کند؟

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

انواع persistence یا ماندگاری یا در Redis

  • RDB (Redis Database): ماندگاری RDB اسنپ شات های لحظه ‌ای از مجموعه داده‌ های شما را در فواصل زمانی مشخص انجام می‌دهد.
  • AOF (Append Only File): ماندگاری AOF هر عملیات نوشتن دریافت شده توسط سرور را ثبت می کند، که در راه اندازی سرور دوباره اجرا می شود و مجموعه داده اصلی را بازسازی می کند. دستورات با استفاده از همان فرمت خود پروتکل Redis و به روش append-only ثبت می شوند. Redis می‌تواند لاگ ها را زمانی که خیلی بزرگ می شوند در پس ‌زمینه بازنویسی کند.
  • بدون ماندگاری: در صورت تمایل، اگر می ‌خواهید تا زمانی که سرور در حال اجرا است، داده‌های شما وجود داشته باشند، می ‌توانید ماندگاری را به طور کامل غیرفعال کنید.
  • RDB + AOF: امکان ترکیب هر دو AOF و RDB در یک نمونه وجود دارد. توجه داشته باشید که در این مورد، هنگامی که Redis راه اندازی مجدد می شود، از فایل AOF برای بازسازی مجموعه داده اصلی استفاده می شود زیرا تضمین می شود که کامل ترین است.

سرفصل های دوره آموزش Redis در Asp Core 6 با داکر:

  • آموزش راه اندازی Redis در داکر(Docker)
  • آموزش تنظیمات Redis Container در داکر
  • آموزش تنظیمات ذخیره سازی با روش RDB در Redis Container در داکر
  • آموزش تنظیمات ذخیره سازی با روش AOF در Redis Container در داکر
  • آموزش استفاده از Redis-cli در Docker
  • ایجاد یک پروژه Asp Core 6 و اتصال آن به Redis
  • بررسی انواع  Data Type های اصلی Redis و کار با آن ها در Asp Core
  • آموزش استفاده از Pub/Sub و ایجاد Message Broker در Redis و استفاده از آن در Asp Core
  • نحوه ایجاد و تنظیم فایل docker-copmose.yml و داکرایز کردن پروژه

برای مشاهده این آموزش می توانید لینک زیر را در کدسل دنبال نمایید:

آموزش Redis در Asp Core با Docker