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

Làm chủ việc tích hợp Redis trong .NET Core:Hướng dẫn thực hành

Giới thiệu

Redis là một kho lưu trữ khóa-giá trị trong bộ nhớ nhanh, được sử dụng rộng rãi để lưu vào bộ nhớ đệm, lưu trữ phiên, xử lý tin nhắn và liên lạc pub/sub trong các ứng dụng hiện đại. Nó nhẹ, hiệu quả và thân thiện với nhà phát triển, khiến nó trở thành lựa chọn phù hợp để xây dựng các hệ thống có thể mở rộng.

Nếu bạn đang phát triển trong .NET Core và muốn tích hợp Redis vào ứng dụng của mình, bài viết này sẽ hướng dẫn bạn cách sử dụng thư viện StackExchange.Redis để thực hiện các thao tác Redis cơ bản.

Đối với những người làm việc trên hệ thống Windows, máy chủ tương thích với Redis có thể được sử dụng để chạy Redis mà không cần Linux hoặc bộ chứa.

Tại sao lại là Redis?

Redis mang lại một số lợi ích khi được tích hợp với ứng dụng .NET Core.

  1. Bộ nhớ đệm: Lưu trữ dữ liệu được truy cập thường xuyên để cải thiện thời gian phản hồi và giảm khối lượng công việc của cơ sở dữ liệu.
  2. Quản lý phiên: Xử lý phiên người dùng một cách hiệu quả trong các hệ thống phân tán.
  3. Sự kiện theo thời gian thực: Sử dụng Redis cho các tính năng pub/sub để hỗ trợ chức năng thời gian thực như thông báo hoặc liên lạc theo sự kiện.
  4. Hiệu suất cao: Hoạt động trong bộ nhớ, cung cấp quyền truy cập dữ liệu có độ trễ thấp.
  5. Có thể mở rộng: Với khả năng hỗ trợ phân cụm và phân mảnh, Redis được xây dựng để có khả năng mở rộng.

Thiết lập Redis

Sử dụng Redis

Để kết nối ứng dụng .NET Core của bạn với Redis, bạn có thể chạy Redis.

  • Cài đặt dòng lệnh: Sử dụng các công cụ như Docker để chạy Redis trên Linux hoặc Windows.
  • Giải pháp thay thế Windows được cấu hình sẵn: Nếu đang sử dụng Windows, bạn có thể sử dụng máy chủ tương thích với Redis làm máy chủ thay thế tùy ý để chạy Redis nguyên bản.

Lưu ý. Để đơn giản, hướng dẫn này giả định Redis đang chạy cục bộ trên localhost:6379.

Xây dựng ứng dụng .NET Core bằng Redis

Trong ví dụ này, chúng tôi sẽ tạo một ứng dụng bảng điều khiển .NET Core thực hiện các thao tác Redis sau.

  1. Kết nối với máy chủ Redis.
  2. Thực hiện các thao tác khóa-giá trị cơ bản (đặt, lấy, xóa).
  3. Thể hiện việc hết hạn và xác thực khóa.

Bước 1. Tạo dự án .NET Core.

  1. Mở terminal và tạo một dự án mới.

    dotnet new RedisIntegrationDemo
  2. Cài đặt gói StackExchange.Redis để kết nối Redis.

    dotnet add package StackExchange.Redis

Bước 2. Viết mã.

Đây là cách triển khai đầy đủ trong Program.cs.

using System;
using StackExchange.Redis;
using System.Threading.Tasks;
namespace RedisIntegrationDemo
{
 class Program
 {
 // Connection string for Redis
 private const string RedisConnectionString = "localhost:6379";
 async static Task Main(string[] args)
 {
 Console.WriteLine("Connecting to Redis...");
 // Connect to Redis
 var redis = await ConnectionMultiplexer.ConnectAsync(RedisConnectionString);
 Console.WriteLine("Connected to Redis successfully.\n");
 // Access the Redis database
 IDatabase db = redis.GetDatabase();
 // Perform Redis operations
 Console.WriteLine("Performing Redis operations...");
 // 1. Set key-value pair
 string key = "SampleKey";
 string value = "Hello from Redis!";
 await db.StringSetAsync(key, value);
 Console.WriteLine($"Set: {key} => {value}");
 // 2. Get the value for the key
 string savedValue = await db.StringGetAsync(key);
 Console.WriteLine($"Get: {key} => {savedValue}");
 // 3. Set an expiration for the key
 TimeSpan expiryTime = TimeSpan.FromSeconds(10);
 await db.KeyExpireAsync(key, expiryTime);
 Console.WriteLine($"Set expiration for {key}: {expiryTime.TotalSeconds} seconds");
 // 4. Check key existence after expiration
 Console.WriteLine("\nWaiting for the key to expire...");
 await Task.Delay(12000); // Wait 12 seconds
 bool exists = await db.KeyExistsAsync(key);
 Console.WriteLine($"Key Exists After Expiration: {key} => {exists}");
 // Close the connection
 redis.Close();
 Console.WriteLine("\nAll Redis operations completed.");
 }
 }
}

Bước 3. Chạy ứng dụng.

Để thực thi ứng dụng.

dotnet run

Sản lượng dự kiến

Chương trình sẽ kết nối với Redis, thực hiện các thao tác khóa-giá trị cơ bản và xác thực thời hạn khóa. Bạn sẽ thấy kết quả như thế này,

Làm chủ việc tích hợp Redis trong .NET Core:Hướng dẫn thực hành

Redis hoạt động như thế nào với .NET Core?

Đây là những gì ứng dụng thực hiện từng bước,

  1. Kết nối với máy chủ Redis bằng ConnectionMultiplexer, quản lý việc tổng hợp kết nối và liên lạc với máy chủ.
  2. Thực hiện các lệnh cơ bản.
    • StringSetAsync: Đặt cặp khóa-giá trị trong Redis.
    • StringGetAsync: Nhận giá trị của khóa.
    • KeyExpireAsync: Đặt thời gian hết hạn cho khóa.
    • KeyExistsAsync: Kiểm tra xem khóa có tồn tại không.
  3. Xử lý việc lưu trữ dữ liệu tạm thời trong bộ nhớ khi hết hạn.

Nếu bạn đang làm việc trong môi trường Windows và không muốn cài đặt phiên bản Redis gốc hoặc sử dụng Docker, thì bạn có thể sử dụng máy chủ tương thích với Redis để thay thế.

Thiết lập máy chủ tương thích với Redis

  • Cài đặt máy chủ tương thích với Redis cho Windows.
  • Sau khi cài đặt, máy chủ thường chạy trên localhost:6379 theo mặc định, tương tự như Redis.
  • Ứng dụng của bạn không yêu cầu bất kỳ thay đổi mã nào để hoạt động với máy chủ tương thích với Redis.

Việc sử dụng máy chủ tương thích với Redis cho phép chức năng của Redis chạy tự nhiên trên Windows mà không cần dựa vào vùng chứa hoặc môi trường ảo hóa.

Ưu điểm của việc sử dụng Redis trong .NET Core

  1. Hiệu suất: Redis hoạt động hoàn toàn trong bộ nhớ, cho phép độ trễ cực thấp.
  2. Dễ sử dụng: API được đơn giản hóa cho các nhu cầu khóa-giá trị phổ biến, với các cấu trúc dữ liệu bổ sung như danh sách, bộ và hàm băm.
  3. Tính linh hoạt: Redis phục vụ nhiều mục đích (ví dụ:lưu vào bộ nhớ đệm, xếp hàng tin nhắn, pub/sub).
  4. Khả năng mở rộng: Redis hỗ trợ phân cụm và tính sẵn sàng cao để mở rộng quy mô theo nhu cầu.

Kết luận

Việc tích hợp Redis vào ứng dụng .NET Core cho phép bạn xây dựng các hệ thống hiệu suất cao, chất lượng cao, có thể xử lý khối lượng công việc đòi hỏi khắt khe. Với thư viện StackExchange.Redis, bạn có thể tương tác với Redis một cách liền mạch.

Bắt đầu bằng cách triển khai Redis để quản lý phiên hoặc bộ nhớ đệm đơn giản, đồng thời mở rộng việc sử dụng nó cho nhu cầu dữ liệu pub/sub và thời gian thực trong các ứng dụng .NET Core phân tán của bạn.

Chúc bạn mã hóa và mở rộng quy mô thành công!