Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Redis

Tăng hiệu suất .NET Core 6 với Redis Caching: Hướng dẫn từng bước

Giới thiệu

Trong thế giới số nhanh chóng hiện nay, ứng dụng cần hiệu suất cao và phản hồi nhanh. Một cách đạt được điều này là triển khai cơ chế caching lưu trữ dữ liệu truy cập thường xuyên, giảm việc lấy dữ liệu từ database lặp lại. Redis, một in-memory data store phổ biến, cung cấp giải pháp caching mạnh mẽ cho ứng dụng .NET Core. Bài viết khám phá cách tích hợp Redis cache trong .NET Core 6 với ví dụ thực tế.

Điều kiện tiên quyết

  1. .NET Core 6 SDK: Cài đặt .NET Core 6 SDK hoặc mới hơn từ trang web chính thức .NET.
  2. Redis Server: Cài đặt và chạy Redis server local hoặc dùng dịch vụ Redis cloud.

Cài đặt Redis Server trên Windows

Tải Redis

Tải phiên bản Redis precompiled cho Windows 64-bit từ GitHub: https://github.com/MicrosoftArchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.msi

Click link tải file .msi (Windows installer). Tìm file trong thư mục Downloads.

Click file để cài đặt Redis.

Redis Server cài đặt tại C:\Program Files\Redis. Có file redis-server.exe.

Tăng hiệu suất .NET Core 6 với Redis Caching: Hướng dẫn từng bước

Mở command line, chạy:

redis-server

Tăng hiệu suất .NET Core 6 với Redis Caching: Hướng dẫn từng bước

Redis server đã chạy.

Giám sát cập nhật/thay đổi trên Redis server:

redis-cli monitor

Tăng hiệu suất .NET Core 6 với Redis Caching: Hướng dẫn từng bước

Tạo ứng dụng .NET Core 6 Console

dotnet new console -n RedisCacheDemo
cd RedisCacheDemo
dotnet add package StackExchange.Redis

Cấu hình kết nối Redis

Trong file Program.cs, thêm using và cấu hình kết nối trong method Main:

static void Main(string[] args) {
    var configuration = ConfigurationOptions.Parse("localhost:6379");
    var redisConnection = ConnectionMultiplexer.Connect(configuration);
    var redisCache = redisConnection.GetDatabase();
    
    Console.WriteLine("Fetching data with caching:");
    var cachedData = GetDataWithCaching(redisCache);
    Console.WriteLine($"Result: {cachedData}");
    
    Console.WriteLine("Fetching data without caching:");
    var uncachedData = GetDataFromDatabase();
    Console.WriteLine($"Result: {uncachedData}");
    
    redisConnection.Close(); // Quan trọng: đóng kết nối
}

static string GetDataFromDatabase() {
    // Mô phỏng lấy dữ liệu từ database
    Thread.Sleep(2000); // Giả lập độ trễ
    return "Start";
}

static string GetDataWithCaching(IDatabase redisCache) {
    // redisCache.KeyDelete("cachedData"); // Để xóa cache
    // redisCache.StringSet("cachedData", "Test", TimeSpan.FromMinutes(1)); // Để cập nhật cache
    string cachedData = redisCache.StringGet("cachedData");
    if (string.IsNullOrEmpty(cachedData)) {
        cachedData = GetDataFromDatabase();
        redisCache.StringSet("cachedData", cachedData, TimeSpan.FromMinutes(1));
    }
    return cachedData;
}

Chạy chương trình. Lần đầu kết quả với và không cache giống nhau vì output được lưu vào cache lần đầu. Nếu thay đổi code, kết quả sẽ khác.

static string GetDataFromDatabase() {
    Thread.Sleep(2000);
    return "Last"; // Thay đổi giá trị trả về
}

Chạy lại: giá trị đầu tiên lấy từ cache, giá trị thứ hai lấy không dùng cache.

Kết luận

Chúc mừng! Bạn đã tích hợp thành công Redis cache vào ứng dụng .NET Core 6. Bằng cách triển khai caching, bạn đã cải thiện hiệu suất và khả năng phản hồi của ứng dụng, làm cho nó hiệu quả hơn trong xử lý dữ liệu truy cập thường xuyên.