บทนำ
Redis คือพื้นที่จัดเก็บคีย์-ค่าในหน่วยความจำที่รวดเร็วซึ่งใช้กันอย่างแพร่หลายสำหรับการแคช พื้นที่จัดเก็บเซสชัน การเป็นนายหน้าข้อความ และการสื่อสารแบบ Pub/sub ในแอปพลิเคชันสมัยใหม่ มีน้ำหนักเบา มีประสิทธิภาพ และเป็นมิตรกับนักพัฒนา ทำให้เป็นตัวเลือกที่เหมาะสำหรับการสร้างระบบที่ปรับขนาดได้
หากคุณกำลังพัฒนาใน .NET Core และต้องการรวม Redis เข้ากับแอปพลิเคชันของคุณ บทความนี้จะแสดงวิธีใช้ไลบรารี StackExchange.Redis เพื่อดำเนินการ Redis ขั้นพื้นฐาน
สำหรับผู้ที่ทำงานบนระบบ Windows สามารถใช้เซิร์ฟเวอร์ที่เข้ากันได้กับ Redis เพื่อเรียกใช้ Redis โดยไม่ต้องใช้ Linux หรือการใช้คอนเทนเนอร์
ทำไมต้อง Redis?
Redis มอบสิทธิประโยชน์หลายประการเมื่อรวมเข้ากับแอปพลิเคชัน .NET Core
- แคช: จัดเก็บข้อมูลที่เข้าถึงบ่อยเพื่อปรับปรุงเวลาตอบสนองและลดภาระงานฐานข้อมูล
- การจัดการเซสชัน: จัดการเซสชันผู้ใช้อย่างมีประสิทธิภาพในระบบแบบกระจาย
- เหตุการณ์แบบเรียลไทม์: ใช้ Redis สำหรับฟีเจอร์ pub/sub เพื่อขับเคลื่อนฟังก์ชันแบบเรียลไทม์ เช่น การแจ้งเตือนหรือการสื่อสารที่ขับเคลื่อนด้วยเหตุการณ์
- ประสิทธิภาพสูง: ทำงานในหน่วยความจำ โดยให้การเข้าถึงข้อมูลที่มีความหน่วงต่ำ
- ปรับขนาดได้: ด้วยการรองรับการทำคลัสเตอร์และการแบ่งส่วน Redis จึงถูกสร้างขึ้นเพื่อความสามารถในการปรับขนาด
การตั้งค่า Redis
การใช้ Redis ป>
หากต้องการเชื่อมต่อแอป .NET Core กับ Redis คุณสามารถเรียกใช้ Redis ได้เช่นกัน
- การติดตั้งบรรทัดคำสั่ง: ใช้เครื่องมือเช่น Docker เพื่อเรียกใช้ Redis บน Linux หรือ Windows
- ทางเลือก Windows ที่กำหนดค่าไว้ล่วงหน้า: หากคุณใช้ Windows คุณสามารถใช้เซิร์ฟเวอร์ที่เข้ากันได้กับ Redis เพื่อทดแทนการเรียกใช้ Redis แบบเนทิฟ
หมายเหตุ เพื่อความง่าย บทช่วยสอนนี้จะถือว่า Redis ทำงานอยู่ในเครื่องบน localhost:6379
การสร้างแอปพลิเคชัน .NET Core ด้วย Redis
ในตัวอย่างนี้ เราจะสร้างแอปพลิเคชันคอนโซล .NET Core ที่ดำเนินการ Redis ต่อไปนี้
- เชื่อมต่อกับเซิร์ฟเวอร์ Redis
- ดำเนินการคีย์-ค่าพื้นฐาน (ตั้งค่า รับ ลบ)
- สาธิตการหมดอายุและการตรวจสอบความถูกต้องของคีย์
ขั้นตอนที่ 1 สร้างโครงการ .NET Core
-
เปิดเทอร์มินัลและสร้างโปรเจ็กต์ใหม่
dotnet new RedisIntegrationDemo -
ติดตั้งแพ็คเกจ StackExchange.Redis สำหรับการเชื่อมต่อ Redis
dotnet add package StackExchange.Redis
ขั้นตอนที่ 2 เขียนโค้ด
นี่คือการใช้งานเต็มรูปแบบใน 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.");
}
}
} ขั้นตอนที่ 3 เรียกใช้แอปพลิเคชัน
เพื่อดำเนินการแอปพลิเคชัน
dotnet run ผลลัพธ์ที่คาดหวัง ป>
โปรแกรมจะเชื่อมต่อกับ Redis ดำเนินการคีย์-ค่าพื้นฐาน และตรวจสอบการหมดอายุของคีย์ คุณควรเห็นผลลัพธ์เช่นนี้

Redis ทำงานอย่างไรกับ .NET Core
นี่คือสิ่งที่แอปพลิเคชันดำเนินการทีละขั้นตอน
- เชื่อมต่อกับเซิร์ฟเวอร์ Redis โดยใช้ ConnectionMultiplexer ซึ่งจัดการการรวมการเชื่อมต่อและการสื่อสารของเซิร์ฟเวอร์
- ดำเนินการคำสั่งพื้นฐาน
- StringSetAsync: ตั้งค่าคู่คีย์-ค่าใน Redis
- StringGetAsync: รับค่าของคีย์
- KeyExpireAsync: ตั้งเวลาหมดอายุสำหรับคีย์
- KeyExistsAsync: ตรวจสอบว่ามีคีย์อยู่หรือไม่
- จัดการการจัดเก็บข้อมูลในหน่วยความจำชั่วคราวที่มีการหมดอายุ
หากคุณทำงานในสภาพแวดล้อม Windows และไม่ต้องการติดตั้งอินสแตนซ์ Redis ดั้งเดิมหรือใช้ Docker คุณสามารถใช้เซิร์ฟเวอร์ที่เข้ากันได้กับ Redis แทนได้
การตั้งค่าเซิร์ฟเวอร์ที่เข้ากันได้กับ Redis
- ติดตั้งเซิร์ฟเวอร์ที่เข้ากันได้กับ Redis สำหรับ Windows
- เมื่อติดตั้งแล้ว โดยทั่วไปเซิร์ฟเวอร์จะทำงานบน localhost:6379 โดยค่าเริ่มต้น ซึ่งคล้ายกับ Redis
- แอปพลิเคชันของคุณไม่จำเป็นต้องเปลี่ยนแปลงโค้ดใดๆ เพื่อทำงานกับเซิร์ฟเวอร์ที่เข้ากันได้กับ Redis
การใช้เซิร์ฟเวอร์ที่เข้ากันได้กับ Redis ช่วยให้ฟังก์ชัน Redis ทำงานบน Windows ได้โดยไม่ต้องอาศัยคอนเทนเนอร์หรือสภาพแวดล้อมเสมือนจริง
ข้อดีของการใช้ Redis ใน .NET Core
- ประสิทธิภาพ: Redis ทำงานอย่างเต็มที่ในหน่วยความจำ ทำให้มีเวลาแฝงต่ำมาก
- ใช้งานง่าย: API ที่เรียบง่ายสำหรับความต้องการคีย์-ค่าทั่วไป พร้อมด้วยโครงสร้างข้อมูลเพิ่มเติม เช่น รายการ ชุด และแฮช
- ความยืดหยุ่น: Redis มีวัตถุประสงค์หลายประการ (เช่น การแคช คิวข้อความ pub/sub)
- ความสามารถในการขยาย: Redis รองรับการทำคลัสเตอร์และความพร้อมใช้งานสูงสำหรับการปรับขนาดตามความต้องการ
บทสรุป
การรวม Redis เข้ากับแอปพลิเคชัน .NET Core ของคุณช่วยให้คุณสร้างระบบคุณภาพสูงและมีประสิทธิภาพที่สามารถรองรับปริมาณงานที่มีความต้องการสูงได้ ด้วยไลบรารี StackExchange.Redis คุณสามารถโต้ตอบกับ Redis ได้อย่างราบรื่น
เริ่มต้นด้วยการนำ Redis ไปใช้สำหรับการแคชหรือการจัดการเซสชันอย่างง่าย และขยายการใช้งานไปยังความต้องการข้อมูลแบบพับ/ย่อยและข้อมูลแบบเรียลไทม์ในแอปพลิเคชัน .NET Core แบบกระจายของคุณ
ขอให้เขียนโค้ดและปรับขนาดได้อย่างมีความสุข!