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

เพิ่มประสิทธิภาพ .NET Core 6 ด้วย Redis Caching:คำแนะนำทีละขั้นตอน

บทนำ

ในโลกดิจิทัลที่เปลี่ยนแปลงอย่างรวดเร็วในปัจจุบัน แอปพลิเคชันต่างๆ ได้รับการคาดหวังให้มอบประสิทธิภาพและการตอบสนองในระดับสูง วิธีหนึ่งในการบรรลุเป้าหมายนี้คือการใช้กลไกแคชที่จัดเก็บข้อมูลที่มีการเข้าถึงบ่อย ช่วยลดความจำเป็นในการดึงข้อมูลจากฐานข้อมูลซ้ำๆ Redis ซึ่งเป็นที่เก็บข้อมูลในหน่วยความจำยอดนิยม นำเสนอโซลูชันการแคชที่มีประสิทธิภาพสำหรับแอปพลิเคชัน .NET Core ในบทความนี้ เราจะสำรวจวิธีผสานรวมแคช Redis ในแอปพลิเคชัน .NET Core 6 พร้อมตัวอย่างที่ใช้งานได้จริง

ข้อกำหนดเบื้องต้น

ก่อนที่เราจะเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งข้อกำหนดเบื้องต้นต่อไปนี้ไว้ในระบบของคุณแล้ว

  1. .NET Core 6 SDK: ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง .NET Core 6 SDK หรือใหม่กว่า คุณสามารถดาวน์โหลดได้จากเว็บไซต์ .NET อย่างเป็นทางการ
  2. เซิร์ฟเวอร์ Redis: ติดตั้งและเรียกใช้เซิร์ฟเวอร์ Redis ภายในเครื่องหรือใช้บริการคลาวด์ Redis

ติดตั้งเซิร์ฟเวอร์ Radis บนหน้าต่าง


ดาวน์โหลด Redis

คุณสามารถดาวน์โหลด Redis เวอร์ชันพรีคอมไพล์ที่ล้าสมัยปานกลางสำหรับ Windows 64 บิตได้จากหน้า GitHub นี้:https://github.com/MicrosoftArchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.msi

โดยการคลิก ลิงก์นี้ คุณจะได้รับ ไฟล์ .msi ซึ่งเป็นตัวติดตั้ง Windows . ตอนนี้ไปที่ การดาวน์โหลด ของคุณ โฟลเดอร์และค้นหาไฟล์นี้

ตอนนี้คลิกที่ไฟล์นั้นและติดตั้ง Redis

ควรติดตั้งเซิร์ฟเวอร์ Redis ไปที่ C:\Program Files\Redis . ที่นั่น คุณจะพบไฟล์ .exe ชื่อ redis-server

เพิ่มประสิทธิภาพ .NET Core 6 ด้วย Redis Caching:คำแนะนำทีละขั้นตอน

ตอนนี้ให้เปิดบรรทัดคำสั่งแล้วป้อนคำสั่งนี้

redis-server

เพิ่มประสิทธิภาพ .NET Core 6 ด้วย Redis Caching:คำแนะนำทีละขั้นตอน

เซิร์ฟเวอร์ Redis ของคุณเริ่มทำงาน

ตอนนี้คุณสามารถตรวจสอบการอัปเดตและการเปลี่ยนแปลงในเซิร์ฟเวอร์ Redis ได้ด้วยคำสั่งนี้

redis-cli monitor

เพิ่มประสิทธิภาพ .NET Core 6 ด้วย Redis Caching:คำแนะนำทีละขั้นตอน

สร้างแอปพลิเคชันคอนโซล .NET Core 6

dotnet new console -n RedisCacheDemo

นำทางไปยังโฟลเดอร์โครงการ

cd RedisCacheDemo

ติดตั้งแพ็คเกจที่จำเป็น

dotnet add package StackExchange.Redis

กำหนดค่าการเชื่อมต่อ Redis

ใน Program.cs เพิ่มคำสั่งที่จำเป็น และกำหนดค่าการเชื่อมต่อ Redis ใน 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(); //It is important to close the connection
}
static string GetDataFromDatabase()
{
 // Simulate fetching data from the database
 // Replace this with your actual database fetching logic
 Thread.Sleep(2000); // Simulating latency
 return "Start";
}
static string GetDataWithCaching(IDatabase redisCache)
{
 // redisCache.KeyDelete("cachedData"); // For Delete the Cache
 // redisCache.StringSet("cachedData", "Test", TimeSpan.FromMinutes(1)); // For Update the Cache
 string cachedData = redisCache.StringGet("cachedData");
 if (string.IsNullOrEmpty(cachedData))
 {
 cachedData = GetDataFromDatabase();
 redisCache.StringSet("cachedData", cachedData, TimeSpan.FromMinutes(1));
 }
 return cachedData;
}

โปรดดำเนินการใช้งานโปรแกรมนี้ต่อไป

ในเอาต์พุตนี้ ผลลัพธ์ที่มีและไม่มีแคชจะเหมือนกัน นี่เป็นเพราะว่าเอาต์พุตถูกเก็บไว้ในแคชในครั้งแรกที่ถูกสร้างขึ้น อย่างไรก็ตาม หากมีการเปลี่ยนแปลงโค้ด ผลลัพธ์จะแตกต่างออกไป

static string GetDataFromDatabase()
{
 // Simulate fetching data from the database
 // Replace this with your actual database fetching logic
 Thread.Sleep(2000); // Simulating latency
 return "Last";
}

ฉันอัปเดตค่าของโค้ดแล้วและจะเรียกใช้อีกครั้ง

ในเอาต์พุตนี้ ค่าแรกจะถูกดึงมาจากแคช และค่าที่สองจะถูกดึงออกมาโดยไม่ใช้แคช

บทสรุป

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