Latest web development tutorials

พาร์ทิชัน 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 หมายเหตุ: การดำเนินการแบบโมดูโลคือการใช้เวลาที่เหลือของนอกจากนี้ผู้ประกอบ% มักจะดำเนินการโดยใช้ความหลากหลายของภาษาการเขียนโปรแกรม