พาร์ทิชัน Redis
พาร์ทิชั่นแบ่งออกเป็นส่วนใหญ่ของการประมวลผลข้อมูลกรณี Redis แต่ละอินสแตนซ์ที่จะบันทึกเฉพาะชุดย่อยของกุญแจ
ประโยชน์ของการแบ่งพาร์ทิชัน
- โดยการใช้หน่วยความจำและค่าคอมพิวเตอร์มากกว่าหนึ่งของการช่วยให้เราสามารถสร้างฐานข้อมูลที่มีขนาดใหญ่
- โดยแบบมัลติคอร์และมัลติคอมพิวเตอร์ช่วยให้เราสามารถขยายกำลังการผลิตคอมพิวเตอร์ผ่านทางคอมพิวเตอร์หลายเครื่องและอะแดปเตอร์เครือข่ายที่ช่วยให้เราสามารถขยายแบนด์วิธเครือข่าย
พาร์ทิชันไม่เพียงพอ
บาง Redis คุณลักษณะในการปฏิบัติงานแบ่งพาร์ทิชันไม่ดีมาก:
- การดำเนินงานที่เกี่ยวข้องมากกว่าหนึ่งที่สำคัญโดยทั่วไปจะไม่ได้รับการสนับสนุน ตัวอย่างเช่นเมื่อสองชุดแมปไปยังอินสแตนซ์ที่แตกต่างกันของ Redis คุณจะไม่สามารถที่จะดำเนินการเหล่านี้ดำเนินการแยกสองชุด
- มันเกี่ยวข้องกับจำนวนของการทำธุรกรรม Redis ที่สำคัญไม่สามารถใช้
- เมื่อใช้พาร์ติชั่นการประมวลผลข้อมูลที่ซับซ้อนมากขึ้นเช่นที่คุณต้องจัดการหลาย RDB ไฟล์ / อ๊อฟและไฟล์สำรองข้อมูลจากหลายกรณีของการติดตาและโฮสต์
- เพิ่มหรือลบความจุยังมีความซับซ้อนมากขึ้น Redis คลัสเตอร์การสนับสนุนส่วนใหญ่ที่เพิ่มขึ้นรันไทม์ข้อมูลที่โปร่งใสลบโหนดสมดุลของอำนาจ แต่คล้ายกับพาร์ทิชันลูกค้าตัวแทนและระบบอื่น ๆ ที่ไม่สนับสนุนคุณสมบัตินี้ แต่เทคนิคนี้เรียกว่า presharding เป็นประโยชน์
ประเภทพาร์ทิชัน
Redis มีสองประเภทของพาร์ทิชัน สมมติว่ามีสี่ Redis เช่น R0, R1, R2, R3 และผู้ใช้ที่คล้ายกัน: 1 ผู้ใช้: เป็นส่วนใหญ่ของที่สำคัญ 2 เช่นการเป็นตัวแทนในผู้ใช้ที่ได้รับกุญแจสำคัญในการเลือกหลากหลายของวิธีการที่แตกต่างกันในการที่สำคัญคือการเก็บไว้ในอินสแตนซ์ . ในคำอื่น ๆ มีระบบที่แตกต่างกันเพื่อทำแผนที่ที่สำคัญในการบริการ Redis
การแบ่งช่วง
วิธีที่ง่ายที่สุดคือการแบ่งพาร์ทิชันพาร์ทิชันช่วงถูกแมปไปช่วงของเรื่องที่เฉพาะเจาะจงเช่น Redis
ยกตัวอย่างเช่นหมายเลข 0-10000 ผู้ใช้จะประหยัดเช่น R0 ที่ ID 10,001-20,000 ผู้ใช้จะถูกบันทึกไว้ใน R1 และอื่น ๆ
วิธีนี้เป็นวิธีที่เป็นไปได้และการใช้งานในทางปฏิบัติที่จะมีช่วงของน้อยกว่าช่วงของตัวอย่างเช่นตารางการทำแผนที่ที่ ตารางนี้คือการได้รับการจัดการ แต่ยังต้อง map วัตถุต่าง ๆ มักจะ Redis ไม่ได้เป็นวิธีการที่ดี
พาร์ทิชันแฮช
อีกวิธีหนึ่งคือการแบ่งพาร์ทิชันพาร์ทิชันสับ นี้นำไปใช้ปุ่มใด ๆ และไม่จำเป็นต้อง OBJECT_NAME:
- การใช้ปุ่มฟังก์ชันแฮชจะถูกแปลงเป็นตัวเลขเช่นการใช้ฟังก์ชันแฮช CRC32 การดำเนินงานของ CRC32 foobar (Key foobar) จะได้ผลลัพธ์เป็นจำนวนเต็มของที่คล้ายกัน 93024922
- โมดูโลจำนวนเต็มนี้ซึ่งถูกดัดแปลงเป็นดิจิตอลระหว่าง 0-3 ก็สามารถแมปไปจำนวนเต็ม 4 Redis อินสแตนซ์เป็นหนึ่ง 93,024,922% 4 = 2 นั่นคือ foobar สำคัญควรจะบันทึกไว้ในอินสแตนซ์ R2 หมายเหตุ: การดำเนินการแบบโมดูโลคือการใช้เวลาที่เหลือของนอกจากนี้ผู้ประกอบ% มักจะดำเนินการโดยใช้ความหลากหลายของภาษาการเขียนโปรแกรม