Redis Cache Là Gì

Redis Cache Là Gì
Redis Cache Là Gì

Redis Cache – Giới thiệu

Trong bài viết này, chúng ta sẽ tìm hiểu về Redis Cache và cách sử dụng nó trong ứng dụng DotNet Core. Redis Cache là một cơ sở dữ liệu cache và message broker sử dụng bộ nhớ trong (in-memory). Với Redis Cache, chúng ta có thể lưu trữ và truy xuất dữ liệu nhanh chóng từ ứng dụng của mình.

Tại sao cần sử dụng Redis Cache?

Redis Cache được sử dụng như một bộ nhớ cache cho dữ liệu trong ứng dụng. Khi chúng ta có một bảng điều khiển (dashboard) cần hiển thị các giá trị như doanh thu tổng cộng, tình trạng đơn hàng, tình trạng thu nhập khách hàng, bán hàng toàn cầu và tỷ lệ bán hàng theo từng quốc gia, chúng ta cần xử lý dữ liệu trong cơ sở dữ liệu của mình. Quá trình xử lý này có thể mất nhiều thời gian khi có hàng ngàn bản ghi trong cơ sở dữ liệu.

Để giải quyết vấn đề này, chúng ta có thể sử dụng Redis Cache để lưu trữ dữ liệu đã xử lý trước đó từ cơ sở dữ liệu. Khi người dùng truy cập vào bảng điều khiển của chúng ta, chúng ta chỉ cần truy xuất dữ liệu từ Redis Cache thay vì phải xử lý lại dữ liệu từ cơ sở dữ liệu. Điều này giúp tăng hiệu suất ứng dụng và giảm thời gian phản hồi đối với người dùng.

Ngoài ra, Redis Cache còn có thể được sử dụng để lưu trữ tạm thời dữ liệu trong một khoảng thời gian nhất định, ví dụ như lưu trữ dữ liệu trong vài phút hoặc vài giờ.

Cách triển khai Redis Cache trong ứng dụng DotNet Core

Bước 1: Cài đặt Redis Cache

Đầu tiên, chúng ta cần cài đặt Redis Cache vào máy tính của mình. Bạn có thể tải Redis từ trang chủ (https://redis.io/) hoặc sử dụng các phiên bản đã được biên dịch sẵn cho hệ điều hành của bạn.

Bước 2: Cài đặt các thư viện Redis Cache

Tiếp theo, chúng ta cần thêm các thư viện cần thiết để triển khai Redis Cache trong ứng dụng DotNet Core. Chúng ta có thể sử dụng công cụ quản lý gói NuGet để thêm các thư viện sau:

Microsoft.Extensions.Caching.StackExchangeRedis
Newtonsoft.Json

Bước 3: Cấu hình Redis Cache

Trong ứng dụng DotNet Core, chúng ta cần cấu hình Redis Cache trong phương thức ConfigureServices của lớp Startup.cs. Đầu tiên, chúng ta cần khai báo dependency injection cho Redis Cache bằng cách thêm dòng sau vào phương thức ConfigureServices:

services.AddStackExchangeRedisCache(options =>
{
    options.Configuration = "localhost:6379";
    options.InstanceName = "redis-demo";
});

Ở đây, chúng ta khai báo cấu hình Redis Cache với địa chỉ localhost:6379 (đây là địa chỉ và cổng mặc định của Redis). Chúng ta cũng cung cấp một tên cho Redis Cache instance với giá trị “redis-demo”.

Bước 4: Lưu trữ dữ liệu vào Redis Cache

Bây giờ, chúng ta có thể lưu trữ dữ liệu vào Redis Cache. Đầu tiên, chúng ta cần khai báo một đối tượng IDistributedCache bằng cách sử dụng dependency injection trong lớp HomeController:

private readonly IDistributedCache _distributedCache;

public HomeController(IDistributedCache distributedCache)
{
    _distributedCache = distributedCache;
}

Tiếp theo, chúng ta sẽ tạo một phương thức SaveRedisCache để lưu trữ dữ liệu vào Redis Cache:

public IActionResult SaveRedisCache()
{
    var dashboardData = new DashboardData
    {
        TotalCustomers = 100450,
        TotalRevenue = 10000,
        TopSellingCountryName = "United States",
        TopSellingProductName = "Macbook Pro"
    };

    var jsonData = JsonConvert.SerializeObject(dashboardData);
    _distributedCache.SetString("dashboard-data", jsonData);

    return View();
}

Trong phương thức này, chúng ta tạo một đối tượng DashboardData để lưu trữ dữ liệu. Sau đó, chúng ta chuyển đối tượng này thành một chuỗi JSON bằng cách sử dụng thư viện Newtonsoft.Json. Cuối cùng, chúng ta lưu trữ chuỗi JSON vào Redis Cache bằng phương thức _distributedCache.SetString.

Bước 5: Truy xuất dữ liệu từ Redis Cache

Cuối cùng, chúng ta cần truy xuất dữ liệu từ Redis Cache và hiển thị nó trong ứng dụng. Trong lớp HomeController, chúng ta sẽ tạo một phương thức Dashboard để truy xuất dữ liệu từ Redis Cache:

public async Task<IActionResult> Dashboard()
{
    var jsonData = await _distributedCache.GetStringAsync("dashboard-data");
    var dashboardData = JsonConvert.DeserializeObject<DashboardData>(jsonData);

    ViewBag.DashboardData = dashboardData;

    return View();
}

Trong phương thức này, chúng ta truy xuất chuỗi JSON từ Redis Cache bằng phương thức _distributedCache.GetStringAsync. Sau đó, chúng ta chuyển đổi chuỗi JSON thành đối tượng DashboardData bằng cách sử dụng thư viện Newtonsoft.Json. Cuối cùng, chúng ta gán giá trị của dashboardData cho ViewBag.DashboardData.

Với các bước trên, chúng ta đã triển khai thành công Redis Cache trong ứng dụng DotNet Core của mình. Bây giờ, chúng ta có thể truy cập vào các trang SaveRedisCacheDashboard để lưu trữ và truy xuất dữ liệu từ Redis Cache.

Hy vọng bài viết này đã giúp bạn hiểu cách sử dụng Redis Cache trong ứng dụng của mình. Nếu bạn có bất kỳ câu hỏi nào, vui lòng để lại bình luận dưới video. Hãy like và chia sẻ video để ủng hộ chúng tôi. Cảm ơn bạn đã đọc!

Redis Cache Là Gì