Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon การให้ข้อมูลเป็นอย่างไรในคลัสเตอร์ Redis


การให้ข้อมูลเป็นอย่างไรในคลัสเตอร์ Redis


นี่คือวิธีการทำงานของข้อมูลใน Redis Cluster:

Redis Cluster Sharding

REDIS Cluster ใช้กลไกการให้คำปรึกษาในตัวเพื่อพาร์ติชันข้อมูลโดยอัตโนมัติในหลายโหนด Redis ประเด็นสำคัญของวิธีการทำงานนี้คือ:

1. การแบ่งพาร์ติชัน Keyspace: คีย์สเปซทั้งหมดในคลัสเตอร์ Redis แบ่งออกเป็นช่องแฮช 16,384 ช่อง สล็อตแฮชเหล่านี้มีหน้าที่ในการแจกจ่ายข้อมูลข้ามคลัสเตอร์

2. การกำหนดสล็อตแฮช: โหนด Redis แต่ละโหนดในคลัสเตอร์จะถูกกำหนดชุดย่อยของช่องแฮช 16,384 การกำหนดช่องแฮชให้กับโหนดจะทำผ่านฟังก์ชันแฮช

3. การจัดวางข้อมูล: เมื่อลูกค้าต้องการจัดเก็บคู่คีย์-ค่าไคลเอนต์จะคำนวณค่าแฮชของคีย์โดยใช้ฟังก์ชันแฮชที่กำหนดไว้ล่วงหน้า ค่าแฮชนี้จะถูกแมปกับหนึ่งในช่องแฮช 16,384 ข้อมูลจะถูกเก็บไว้ในโหนด Redis ที่เป็นเจ้าของสล็อตแฮช

4. การจำลองแบบ: สำหรับสล็อตแฮชแต่ละช่องมีโหนดหลักที่รับผิดชอบในการให้บริการคำขออ่าน/เขียน นอกจากนี้ยังมีโหนดแบบจำลองหนึ่งโหนดหรือมากกว่าที่เก็บสำเนาของข้อมูลเพื่อความพร้อมใช้งานสูง

5. การ resharding อัตโนมัติ: เมื่อมีการเพิ่มหรือลบโหนดออกจากคลัสเตอร์การกำหนดสล็อตแฮชจะถูกปรับสมดุลโดยอัตโนมัติเพื่อให้แน่ใจว่ามีการแจกแจงข้อมูลและโหลดทั่วทั้งคลัสเตอร์

ประโยชน์ของ Redis Cluster Sharding

1. ความสามารถในการปรับขนาด: โดยการกระจายข้อมูลในหลายโหนดคลัสเตอร์ Redis สามารถปรับขนาดเพื่อจัดการข้อมูลจำนวนมากและปริมาณงานสูง

2. ความพร้อมใช้งานสูง: การจำลองแบบของช่องแฮชในโหนดหลักและแบบจำลองทำให้มั่นใจได้ว่ามีความพร้อมใช้งานสูงเนื่องจากลูกค้าสามารถเข้าถึงข้อมูลต่อไปได้แม้ว่าบางโหนดจะล้มเหลว

3. การเข้าถึงไคลเอนต์โปร่งใส: การแมปสล็อตแฮชได้รับการจัดการอย่างโปร่งใสโดยคลัสเตอร์ Redis เพื่อให้ลูกค้าสามารถเข้าถึงข้อมูลได้โดยไม่จำเป็นต้องทราบรายละเอียดของการทำลายล้างพื้นฐาน

4. การจัดการอัตโนมัติ: Redis Cluster ทำให้การจัดการของการจัดวางโดยอัตโนมัติรวมถึงข้อมูลการปรับสมดุลเมื่อคลัสเตอร์เติบโตหรือหดตัว

โดยรวมแล้วสถาปัตยกรรมของ Redis Cluster ช่วยให้สามารถจัดเก็บข้อมูลแบบกระจายที่ปรับขนาดได้สูงและง่ายต่อการจัดการทำให้เหมาะสำหรับแอปพลิเคชันที่มีปริมาณข้อมูลขนาดใหญ่หรือข้อกำหนดปริมาณงานสูง

การอ้างอิง:
[1] https://scalegrid.io/blog/intro-to-redis-harding/
[2] https://redis.io/redis-enterprise/technology/redis-enterprise-cluster-architecture/
[3] https://yandex.cloud/en/docs/managed-redis/concepts/sharding
[4] https://redisson.org/glossary/sharding.html
[5] https://docs.aws.amazon.com/amazonelasticache/latest/red-ug/cachenodes.nodegroups.html