Redis - การแบ่งพาร์ติชัน
การแบ่งพาร์ติชันเป็นกระบวนการแบ่งข้อมูลของคุณออกเป็นอินสแตนซ์ Redis หลาย ๆ อินสแตนซ์ดังนั้นทุกอินสแตนซ์จะมีคีย์ของคุณเพียงบางส่วนเท่านั้น
ประโยชน์ของการแบ่งพาร์ติชัน
ช่วยให้ฐานข้อมูลมีขนาดใหญ่ขึ้นโดยใช้ผลรวมของหน่วยความจำของคอมพิวเตอร์หลายเครื่อง หากไม่มีการแบ่งพาร์ติชันคุณจะ จำกัด จำนวนหน่วยความจำที่คอมพิวเตอร์เครื่องเดียวสามารถรองรับได้
ช่วยให้สามารถปรับขนาดพลังการคำนวณไปยังหลายคอร์และคอมพิวเตอร์หลายเครื่องและแบนด์วิธเครือข่ายไปยังคอมพิวเตอร์หลายเครื่องและอะแดปเตอร์เครือข่าย
ข้อเสียของการแบ่งพาร์ติชั่น
โดยปกติจะไม่รองรับการทำงานที่เกี่ยวข้องกับหลายคีย์ ตัวอย่างเช่นคุณไม่สามารถทำการตัดกันระหว่างสองชุดได้หากเก็บไว้ในคีย์ที่แมปกับอินสแตนซ์ Redis ที่ต่างกัน
ไม่สามารถใช้การทำธุรกรรมซ้ำที่เกี่ยวข้องกับหลายคีย์ได้
รายละเอียดการแบ่งพาร์ติชันเป็นกุญแจสำคัญดังนั้นจึงเป็นไปไม่ได้ที่จะแบ่งชุดข้อมูลด้วยคีย์ขนาดใหญ่เพียงปุ่มเดียวเหมือนกับชุดที่เรียงขนาดใหญ่มาก
เมื่อใช้การแบ่งพาร์ติชันการจัดการข้อมูลจะซับซ้อนมากขึ้น ตัวอย่างเช่นคุณต้องจัดการไฟล์ RDB / AOF หลายไฟล์และในการสำรองข้อมูลของคุณคุณต้องรวบรวมไฟล์การคงอยู่จากอินสแตนซ์และโฮสต์หลาย ๆ
การเพิ่มและลบความจุอาจมีความซับซ้อน ตัวอย่างเช่น Redis Cluster สนับสนุนการปรับสมดุลข้อมูลแบบโปร่งใสเป็นส่วนใหญ่พร้อมความสามารถในการเพิ่มและลบโหนดขณะรันไทม์ อย่างไรก็ตามระบบอื่น ๆ เช่นการแบ่งพาร์ติชันฝั่งไคลเอ็นต์และพร็อกซีไม่รองรับคุณสมบัตินี้ เทคนิคที่เรียกว่าPresharding ช่วยในเรื่องนี้
ประเภทของการแบ่งพาร์ติชัน
มีการแบ่งพาร์ติชันสองประเภทใน Redis สมมติว่าเรามีอินสแตนซ์ Redis สี่อินสแตนซ์ R0, R1, R2, R3 และคีย์จำนวนมากที่แสดงถึงผู้ใช้เช่นผู้ใช้: 1, ผู้ใช้: 2, ... และอื่น ๆ
การแบ่งช่วง
การแบ่งช่วงสามารถทำได้โดยการแมปช่วงของวัตถุลงในอินสแตนซ์ Redis ที่ระบุ สมมติว่าในตัวอย่างของเราผู้ใช้จาก ID 0 ถึง ID 10000 จะเข้าสู่อินสแตนซ์ R0 ในขณะที่ผู้ใช้จาก ID 10001 ถึง ID 20000 จะเข้าสู่อินสแตนซ์ R1 และอื่น ๆ
การแบ่งพาร์ติชันแฮช
ในการแบ่งพาร์ติชันประเภทนี้ฟังก์ชันแฮช (เช่นฟังก์ชันโมดูลัส) ถูกใช้เพื่อแปลงคีย์เป็นตัวเลขจากนั้นข้อมูลจะถูกเก็บไว้ในอินสแตนซ์ Redis ที่แตกต่างกัน