ออกแบบโซลูชันการแคช

เสร็จสมบูรณ์เมื่อ

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

การแคชจะมีประสิทธิภาพมากที่สุดเมื่ออินสแตนซ์ของไคลเอ็นต์อ่านข้อมูลเดียวกันซ้ํา ๆ โดยเฉพาะอย่างยิ่งเมื่อเป็นไปตามเงื่อนไขต่อไปนี้กับที่เก็บข้อมูลต้นฉบับ:

  • ที่เก็บข้อมูลต้นฉบับจะยังคงค่อนข้างคงที่
  • ซึ่งอยู่ภายใต้การคัดเลือกระดับสูง
  • ซึ่งอยู่ไกลและเวลาแฝงของเครือข่ายอาจส่งผลให้การเข้าถึงร้านค้าช้าลง

สมมติว่า Tailwind Traders กําลังเพิ่มคุณสมบัติใหม่ในแอปพลิเคชันสาธิตผลิตภัณฑ์เพื่อเพิ่มปริมาณการใช้งานของลูกค้าไปยังเว็บไซต์ค้าปลีกของพวกเขา ฟีเจอร์เหตุการณ์เพิ่มแบนเนอร์ด้านบนสุดของแอปสําหรับอุปกรณ์เคลื่อนที่เพื่อประกาศข้อเสนอพิเศษและส่วนลดผลิตภัณฑ์ที่จํากัด ข้อเสนอใหม่จะโพสต์เป็นรายชั่วโมง และความพร้อมใช้งานของผลิตภัณฑ์ที่เหลือสําหรับแต่ละข้อเสนอจะได้รับการอัปเดตหลังจากที่มีการประมวลผลคําสั่งซื้อทุกครั้ง ลูกค้ารายแรกที่ตอบสนองข้อเสนอใหม่ได้รับส่วนลดสองเท่า! ลูกค้าจะได้รับการแนะนําให้ตรวจสอบแอปสําหรับอุปกรณ์เคลื่อนที่ของพวกเขาบ่อยครั้งเพื่ออัปเดตข้อเสนอและความพร้อมใช้งานผลิตภัณฑ์ หากต้องการใช้คุณลักษณะใหม่นี้ คุณต้องออกแบบโซลูชันการแคชที่สามารถสนับสนุนการอ่านและการเขียนที่รวดเร็วในหน่วยความจํา

สิ่งที่ต้องทราบเกี่ยวกับแคช Azure สําหรับ Redis

Azure Cache สําหรับ Redis มีที่เก็บข้อมูลในหน่วยความจําที่ยึดตามซอฟต์แวร์ Redis Redis ช่วยปรับปรุงประสิทธิภาพการทํางานและความสามารถในการปรับขนาดของแอปพลิเคชันที่ใช้ที่เก็บข้อมูล back-end อย่างมาก ซึ่งสามารถประมวลผลคําขอแอปพลิเคชันจํานวนมากโดยเก็บข้อมูลที่มีการเข้าถึงบ่อยในหน่วยความจําเซิร์ฟเวอร์ ซึ่งสามารถเขียนและอ่านจากอย่างรวดเร็ว Redis นําความล่าช้าต่ําที่สําคัญและโซลูชันการจัดเก็บข้อมูลที่มีอัตราความเร็วสูงไปยังแอปพลิเคชันที่ทันสมัย

มาลองตรวจสอบลักษณะของบริการ:

  • Azure Cache สําหรับ Redis มีตัวเลือกการใช้งานสองตัวเลือกสําหรับนักพัฒนา:

    • โอเพนซอร์ส Redis (OSS Redis)
    • ผลิตภัณฑ์เชิงพาณิชย์จาก Redis Labs (Redis Enterprise) เป็นบริการที่มีการจัดการ
  • Azure Cache สําหรับ Redis มีอินสแตนซ์เซิร์ฟเวอร์ Redis ที่ปลอดภัยและเฉพาะ และความเข้ากันได้ของ Redis API เต็มรูปแบบ

  • คุณสามารถใช้ Azure Cache สําหรับ Redis เป็นข้อมูลแบบกระจายหรือแคชเนื้อหา การจัดเก็บเซสชัน หรือตัวกลางข้อความได้

  • ปรับใช้ Azure Cache สําหรับ Redis เป็นแบบสแตนด์อโลนหรือกับบริการฐานข้อมูล Azure อื่น ๆ เช่น Azure SQL หรือ Azure Cosmos DB

วิธีการทํางานของแคช Azure สําหรับ Redis

Azure Cache สําหรับ Redis ถูกโฮสต์บน Azure และสามารถใช้งานได้โดยแอปพลิเคชันใดๆ ภายในหรือภายนอก Azure ตามที่ระบุไว้ในกราฟิกต่อไปนี้ Azure Cache for Redis สามารถช่วยปรับปรุงประสิทธิภาพการทํางานในแอปที่เชื่อมต่อกับโซลูชันฐานข้อมูลจํานวนมาก รวมถึง Azure SQL Database, Azure Cosmos DB และฐานข้อมูล Azure สําหรับ MySQL

ภาพประกอบที่แสดงกรณีการใช้งานทั่วไปสําหรับ Azure Cache สําหรับ Redis

สิ่งที่ต้องพิจารณาเมื่อใช้ Azure Cache สําหรับ Redis

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

แบบ บทภาพยนตร์ สารละลาย
แคชข้อมูลของ ฐานข้อมูล มักมีขนาดใหญ่เกินไปที่จะโหลดลงในแคชโดยตรง เป็นเรื่องปกติที่จะใช้รูปแบบ แคช เพื่อโหลดข้อมูลลงในแคชตามความจําเป็นเท่านั้น เมื่อระบบทําการเปลี่ยนแปลงข้อมูล ระบบยังสามารถปรับปรุงแคช ซึ่งจะแจกจ่ายไปยังไคลเอนต์อื่น ๆ นอกจากนี้ ระบบสามารถตั้งค่าวันหมดอายุของข้อมูล หรือใช้นโยบายการลดข้อมูลเพื่อทริกเกอร์การอัปเดตข้อมูลลงในแคชได้
แคชเนื้อหา เว็บเพจจํานวนมากสร้างขึ้นจากเทมเพลตที่ใช้เนื้อหาแบบคงที่ เช่น ส่วนหัว ส่วนท้าย แบนเนอร์ รายการคงที่เหล่านี้ไม่ควรเปลี่ยนแปลงบ่อย. การใช้แคชในหน่วยความจําช่วยให้สามารถเข้าถึงเนื้อหาคงที่ได้อย่างรวดเร็วเมื่อเทียบกับที่เก็บข้อมูล back-end รูปแบบนี้จะช่วยลดเวลาการประมวลผลและการโหลดเซิร์ฟเวอร์และช่วยให้เว็บเซิร์ฟเวอร์สามารถตอบสนองได้มากขึ้น แคชเนื้อหาสามารถช่วยให้คุณสามารถลดจํานวนเซิร์ฟเวอร์ที่จําเป็นต้องจัดการกับการโหลดได้ แคช Azure สําหรับ Redis มีผู้ให้บริการแคชเอาต์พุต Redis เพื่อสนับสนุนรูปแบบนี้กับ ASP.NET
ที่เก็บเซสชัน โดยทั่วไปแล้ว ร้านค้าเซสชันจะใช้กับตะกร้าสินค้าและข้อมูลประวัติผู้ใช้อื่น ๆ ที่แอปพลิเคชันเว็บอาจเชื่อมโยงกับคุกกี้ของผู้ใช้ การจัดเก็บมากเกินไปในคุกกี้สามารถมีผลกระทบเชิงลบต่อประสิทธิภาพการทํางานเมื่อขนาดของคุกกี้เพิ่มขึ้นและถูกส่งผ่านและตรวจสอบกับทุกคําขอ. โซลูชันทั่วไปใช้คุกกี้เป็นคีย์เพื่อคิวรีข้อมูลในฐานข้อมูล การใช้แคชในหน่วยความจําเช่น Azure Cache สําหรับ Redis เพื่อเชื่อมโยงข้อมูลกับผู้ใช้เร็วกว่าการโต้ตอบกับฐานข้อมูลเชิงสัมพันธ์เต็มรูปแบบ
งานและข้อความ การดําเนินการแอปพลิเคชันบางอย่างใช้เวลามากในการดําเนินการให้เสร็จสมบูรณ์ ซึ่งอาจป้องกันไม่ให้งานหรือข้อความอื่น ๆ ที่ไม่เกี่ยวข้องเริ่มต้นได้ แอปพลิเคชันมักจะเพิ่มงานลงในคิวเมื่อการดําเนินการที่เกี่ยวข้องกับคําขอใช้เวลาในการดําเนินการ เซิร์ฟเวอร์อื่นจะจัดคิวการดําเนินการที่ใช้เวลานานกว่า วิธีการทํางานเลื่อนเวลานี้เรียกว่า task queuing Azure Cache สําหรับ Redis มีคิวแบบกระจายเพื่อเปิดใช้งานรูปแบบนี้ในแอปพลิเคชันของคุณ
ธุรกรรมแบบกระจาย แอปพลิเคชันในบางครั้งจําเป็นต้องมีชุดของคําสั่งเทียบกับที่เก็บข้อมูล back-end เพื่อดําเนินการเป็นการดําเนินการแบบอะตอมเดียว คําสั่งทั้งหมดต้องประสบความสําเร็จ หรือคําสั่งทั้งหมดต้องย้อนกลับไปยังสถานะเริ่มต้น. แคช Azure สําหรับ Redis รองรับการดําเนินการคําสั่งเป็นรายการเดียว