پرشین تم مقالات Redis چیست؟ آموزش استفاده از آن در asp core

Redis چیست؟ آموزش استفاده از آن در asp core

image profile پرشین تم - 27 شهریور 1404 - 17:55 دانلود مقاله

Redis یک مخزن داده با عملکرد بالا و کلید-مقدار در حافظه است که اغلب برای ذخیره‌سازی موقت (caching)، مدیریت جلسه (session) و پیام‌رسانی بلادرنگ (real-time messaging) استفاده می‌شود. در برنامه‌های ASP.NET Core، Redis نقش حیاتی در بهبود مقیاس‌پذیری، سرعت و قابلیت اطمینان ایفا می‌کند.

Redis چیست؟ آموزش استفاده از آن در asp core
  • ذخیره سازی در حافظه: Redis داده‌ها را در RAM نگه می‌دارد و خواندن و نوشتن را بسیار سریع می‌کند.
  • پایگاه داده کلید-مقدار: داده‌ها را به صورت جفت‌های کلید-مقدار ذخیره می‌کند و از رشته‌ها، هش‌ها، لیست‌ها، مجموعه‌ها و موارد دیگر پشتیبانی می‌کند.
  • متن‌باز: سبک و به طور گسترده در بین پلتفرم‌ها پذیرفته شده است.
  • پشتیبانی از ماندگاری: اگرچه Redis در حافظه است، اما در صورت نیاز می‌تواند داده‌ها را در دیسک ذخیره کند.
  • ویژگی‌های پیشرفته: شامل پیام‌رسانی pub/sub، اسکریپت‌نویسی Lua و خوشه‌بندی است.

 

🚀 کاربردهای Redis در ASP.NET Core

1. ذخیره‌سازی توزیع‌شده

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

 

2. مدیریت جلسه

  • ASP.NET Core می‌تواند جلسات کاربر را در Redis ذخیره کند و آن‌ها را در بین سرورها قابل دسترسی کند.
  • حتی در صورت راه‌اندازی مجدد یا خرابی سرور، پایداری جلسه را تضمین می‌کند.

 

3. ارتباط بلادرنگ

  • Redis pub/sub را می‌توان برای ویژگی‌های بلادرنگ مانند اعلان‌ها، برنامه‌های چت یا پخش رویداد استفاده کرد.

 

4. ادغام Azure

  • برنامه‌های ASP.NET Core می‌توانند به راحتی با Azure Cache برای Redis برای راه‌حل‌های ذخیره‌سازی مبتنی بر ابر ادغام شوند.

 

🛠️ نحوه استفاده از Redis در ASP.NET Core

  • بسته NuGet مربوط به StackExchange.Redis را نصب کنید.
  • اتصال Redis را در Startup.cs یا Program.cs پیکربندی کنید.
  • از IDistributedCache یا کلاینت‌های سفارشی Redis برای تعامل با حافظه پنهان استفاده کنید.

 

🛒 مثال دنیای واقعی: ذخیره سازی کاتالوگ محصولات در یک اپلیکیشن تجارت الکترونیک

🎯 سناریو

یک فروشگاه آنلاین هزاران محصول دارد. هر بار که کاربر از صفحه محصول بازدید می‌کند، اپلیکیشن برای جزئیات محصول از پایگاه داده پرس و جو می‌کند. این امر باعث موارد زیر می‌شود:

  • بار زیاد پایگاه داده
  • زمان پاسخگویی کندتر
  • مقیاس‌پذیری ضعیف در هنگام افزایش ناگهانی ترافیک

 

💡 راه حل: استفاده از Redis به عنوان حافظه پنهان (Cache)

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

 

🧑‍💻 ASP.NET Core Code Example

public class ProductService
{
    private readonly IDistributedCache _cache;
    private readonly MyDbContext _db;
    public ProductService(IDistributedCache cache, MyDbContext db)
    {
        _cache = cache;
        _db = db;
    }
    public async Task<Product> GetProductAsync(int id)
    {
        var cacheKey = $"product:{id}";
        var cachedProduct = await _cache.GetStringAsync(cacheKey);

        if (!string.IsNullOrEmpty(cachedProduct))
        {
            return JsonSerializer.Deserialize<Product>(cachedProduct);
        }

        var product = await _db.Products.FindAsync(id);

        if (product != null)
        {
            var serialized = JsonSerializer.Serialize(product);
            await _cache.SetStringAsync(cacheKey, serialized, new DistributedCacheEntryOptions
            {
                AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(30)
            });
        }
        return product;
    }
}

 

🧪 مورد استفاده در دنیای واقعی

شرکت‌هایی مانند Shopify، Amazon و Zalando از Redis برای ذخیره فهرست محصولات، جلسات کاربر و داده‌های موجودی استفاده می‌کنند. این امر باعث کاهش تأخیر و بهبود تجربه کاربر در زمان اوج ترافیک می‌شود.

با خرید اشتراک می توانید تا چندین برابر مبلغ خرید اشتراک خود قالب های HTML ، سورس کدهای آماده و یا مقالات دانلود کنید
شما می توانید تنها فقط با مبلغ 3,000,000 میلیون تومان وب سایت سفارسی برای خود داشته باشید
محبوب ترین مقالات
تفاوت بین CSS و SCSS چیست؟ تفاوت بین CSS و SCSS چیست؟
category برنامه نویسی 07 اسفند 1402
تفاوت بین RDBMS و DBMS تفاوت بین RDBMS و DBMS
category برنامه نویسی 02 فروردین 1403
کاوش در معماری GPT-3 کاوش در معماری GPT-3
category هوش مصنوعی 12 اسفند 1402
کلمات کلیدی در SQL کلمات کلیدی در SQL
category برنامه نویسی 01 خرداد 1403
تفاوت بین CSS، SASS و SCSS چیست؟ تفاوت بین CSS، SASS و SCSS چیست؟
category برنامه نویسی 13 اسفند 1402
انواع Join در SQL انواع Join در SQL
category برنامه نویسی 02 فروردین 1403
ChatGPT چیست؟ ChatGPT چیست؟
category هوش مصنوعی 12 اسفند 1402
آخرین مقالات
CI-CD در فلاتر چیست؟ CI-CD در فلاتر چیست؟ در توسعه فلاتر، CI/CD مخفف Continuous Integration (ادغام مداوم) و Continuous Delivery/Deployment (تحویل/استقرار مداوم)...
category برنامه نویسی 25 شهریور 1404
🧩 CQRS چیست؟ 🧩 CQRS چیست؟ هرCQRS یک الگوی طراحی نرم‌افزار است که عملیات خواندن (پرس‌وجوها) را از عملیات نوشتن (دستورات) جدا می‌کند. به جای استفا...
category برنامه نویسی 24 شهریور 1404
🎨 نظریه یا تئوری طراحی چیست؟ 🎨 نظریه یا تئوری طراحی چیست؟ نظریه طراحی چارچوب فکری است که نحوه درک، خلق و ارزیابی طراحی را هدایت می‌کند. این نظریه، فلسفه، زیبایی‌شناسی، عملکرد و...
category کامپیوتر 05 مرداد 1404