Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Redis

การเรียนรู้การรวม Redis ใน .NET Core:คู่มือปฏิบัติ

บทนำ

Redis คือพื้นที่จัดเก็บคีย์-ค่าในหน่วยความจำที่รวดเร็วซึ่งใช้กันอย่างแพร่หลายสำหรับการแคช พื้นที่จัดเก็บเซสชัน การเป็นนายหน้าข้อความ และการสื่อสารแบบ Pub/sub ในแอปพลิเคชันสมัยใหม่ มีน้ำหนักเบา มีประสิทธิภาพ และเป็นมิตรกับนักพัฒนา ทำให้เป็นตัวเลือกที่เหมาะสำหรับการสร้างระบบที่ปรับขนาดได้

หากคุณกำลังพัฒนาใน .NET Core และต้องการรวม Redis เข้ากับแอปพลิเคชันของคุณ บทความนี้จะแสดงวิธีใช้ไลบรารี StackExchange.Redis เพื่อดำเนินการ Redis ขั้นพื้นฐาน

สำหรับผู้ที่ทำงานบนระบบ Windows สามารถใช้เซิร์ฟเวอร์ที่เข้ากันได้กับ Redis เพื่อเรียกใช้ Redis โดยไม่ต้องใช้ Linux หรือการใช้คอนเทนเนอร์

ทำไมต้อง Redis?

Redis มอบสิทธิประโยชน์หลายประการเมื่อรวมเข้ากับแอปพลิเคชัน .NET Core

  1. แคช: จัดเก็บข้อมูลที่เข้าถึงบ่อยเพื่อปรับปรุงเวลาตอบสนองและลดภาระงานฐานข้อมูล
  2. การจัดการเซสชัน: จัดการเซสชันผู้ใช้อย่างมีประสิทธิภาพในระบบแบบกระจาย
  3. เหตุการณ์แบบเรียลไทม์: ใช้ Redis สำหรับฟีเจอร์ pub/sub เพื่อขับเคลื่อนฟังก์ชันแบบเรียลไทม์ เช่น การแจ้งเตือนหรือการสื่อสารที่ขับเคลื่อนด้วยเหตุการณ์
  4. ประสิทธิภาพสูง: ทำงานในหน่วยความจำ โดยให้การเข้าถึงข้อมูลที่มีความหน่วงต่ำ
  5. ปรับขนาดได้: ด้วยการรองรับการทำคลัสเตอร์และการแบ่งส่วน Redis จึงถูกสร้างขึ้นเพื่อความสามารถในการปรับขนาด

การตั้งค่า Redis

การใช้ Redis

หากต้องการเชื่อมต่อแอป .NET Core กับ Redis คุณสามารถเรียกใช้ Redis ได้เช่นกัน

  • การติดตั้งบรรทัดคำสั่ง: ใช้เครื่องมือเช่น Docker เพื่อเรียกใช้ Redis บน Linux หรือ Windows
  • ทางเลือก Windows ที่กำหนดค่าไว้ล่วงหน้า: หากคุณใช้ Windows คุณสามารถใช้เซิร์ฟเวอร์ที่เข้ากันได้กับ Redis เพื่อทดแทนการเรียกใช้ Redis แบบเนทิฟ

หมายเหตุ เพื่อความง่าย บทช่วยสอนนี้จะถือว่า Redis ทำงานอยู่ในเครื่องบน localhost:6379

การสร้างแอปพลิเคชัน .NET Core ด้วย Redis

ในตัวอย่างนี้ เราจะสร้างแอปพลิเคชันคอนโซล .NET Core ที่ดำเนินการ Redis ต่อไปนี้

  1. เชื่อมต่อกับเซิร์ฟเวอร์ Redis
  2. ดำเนินการคีย์-ค่าพื้นฐาน (ตั้งค่า รับ ลบ)
  3. สาธิตการหมดอายุและการตรวจสอบความถูกต้องของคีย์

ขั้นตอนที่ 1 สร้างโครงการ .NET Core

  1. เปิดเทอร์มินัลและสร้างโปรเจ็กต์ใหม่

    dotnet new RedisIntegrationDemo
  2. ติดตั้งแพ็คเกจ 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 ทำงานอย่างไรกับ .NET Core

นี่คือสิ่งที่แอปพลิเคชันดำเนินการทีละขั้นตอน

  1. เชื่อมต่อกับเซิร์ฟเวอร์ Redis โดยใช้ ConnectionMultiplexer ซึ่งจัดการการรวมการเชื่อมต่อและการสื่อสารของเซิร์ฟเวอร์
  2. ดำเนินการคำสั่งพื้นฐาน
    • StringSetAsync: ตั้งค่าคู่คีย์-ค่าใน Redis
    • StringGetAsync: รับค่าของคีย์
    • KeyExpireAsync: ตั้งเวลาหมดอายุสำหรับคีย์
    • KeyExistsAsync: ตรวจสอบว่ามีคีย์อยู่หรือไม่
  3. จัดการการจัดเก็บข้อมูลในหน่วยความจำชั่วคราวที่มีการหมดอายุ

หากคุณทำงานในสภาพแวดล้อม Windows และไม่ต้องการติดตั้งอินสแตนซ์ Redis ดั้งเดิมหรือใช้ Docker คุณสามารถใช้เซิร์ฟเวอร์ที่เข้ากันได้กับ Redis แทนได้

การตั้งค่าเซิร์ฟเวอร์ที่เข้ากันได้กับ Redis

  • ติดตั้งเซิร์ฟเวอร์ที่เข้ากันได้กับ Redis สำหรับ Windows
  • เมื่อติดตั้งแล้ว โดยทั่วไปเซิร์ฟเวอร์จะทำงานบน localhost:6379 โดยค่าเริ่มต้น ซึ่งคล้ายกับ Redis
  • แอปพลิเคชันของคุณไม่จำเป็นต้องเปลี่ยนแปลงโค้ดใดๆ เพื่อทำงานกับเซิร์ฟเวอร์ที่เข้ากันได้กับ Redis

การใช้เซิร์ฟเวอร์ที่เข้ากันได้กับ Redis ช่วยให้ฟังก์ชัน Redis ทำงานบน Windows ได้โดยไม่ต้องอาศัยคอนเทนเนอร์หรือสภาพแวดล้อมเสมือนจริง

ข้อดีของการใช้ Redis ใน .NET Core

  1. ประสิทธิภาพ: Redis ทำงานอย่างเต็มที่ในหน่วยความจำ ทำให้มีเวลาแฝงต่ำมาก
  2. ใช้งานง่าย: API ที่เรียบง่ายสำหรับความต้องการคีย์-ค่าทั่วไป พร้อมด้วยโครงสร้างข้อมูลเพิ่มเติม เช่น รายการ ชุด และแฮช
  3. ความยืดหยุ่น: Redis มีวัตถุประสงค์หลายประการ (เช่น การแคช คิวข้อความ pub/sub)
  4. ความสามารถในการขยาย: Redis รองรับการทำคลัสเตอร์และความพร้อมใช้งานสูงสำหรับการปรับขนาดตามความต้องการ

บทสรุป

การรวม Redis เข้ากับแอปพลิเคชัน .NET Core ของคุณช่วยให้คุณสร้างระบบคุณภาพสูงและมีประสิทธิภาพที่สามารถรองรับปริมาณงานที่มีความต้องการสูงได้ ด้วยไลบรารี StackExchange.Redis คุณสามารถโต้ตอบกับ Redis ได้อย่างราบรื่น

เริ่มต้นด้วยการนำ Redis ไปใช้สำหรับการแคชหรือการจัดการเซสชันอย่างง่าย และขยายการใช้งานไปยังความต้องการข้อมูลแบบพับ/ย่อยและข้อมูลแบบเรียลไทม์ในแอปพลิเคชัน .NET Core แบบกระจายของคุณ

ขอให้เขียนโค้ดและปรับขนาดได้อย่างมีความสุข!