ออกแบบโซลูชันการแคช
การแคช เป็นเทคนิคทั่วไปที่มีจุดมุ่งหมายเพื่อปรับปรุงประสิทธิภาพและความสามารถในการปรับขนาดของระบบ การคัดลอกชั่วคราวที่เข้าถึงข้อมูลไปยังที่เก็บข้อมูลอย่างรวดเร็วที่อยู่ใกล้กับแอปพลิเคชัน เมื่อที่เก็บข้อมูลอย่างรวดเร็วตั้งอยู่ใกล้กับแอปพลิเคชันมากกว่าที่จัดเก็บข้อมูลดั้งเดิมการแคชสามารถปรับปรุงเวลาการตอบสนองสําหรับแอปพลิเคชันไคลเอ็นต์ได้อย่างมากโดยการให้บริการข้อมูลได้อย่างรวดเร็ว
การแคชจะมีประสิทธิภาพมากที่สุดเมื่ออินสแตนซ์ของไคลเอ็นต์อ่านข้อมูลเดียวกันซ้ํา ๆ โดยเฉพาะอย่างยิ่งเมื่อเป็นไปตามเงื่อนไขต่อไปนี้กับที่เก็บข้อมูลต้นฉบับ:
- ที่เก็บข้อมูลต้นฉบับจะยังคงค่อนข้างคงที่
- ซึ่งอยู่ภายใต้การคัดเลือกระดับสูง
- ซึ่งอยู่ไกลและเวลาแฝงของเครือข่ายอาจส่งผลให้การเข้าถึงร้านค้าช้าลง
สมมติว่า 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 สําหรับ 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 รองรับการดําเนินการคําสั่งเป็นรายการเดียว |