Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Redis

การลบวัตถุขนาดใหญ่ใน Redis

ใน Redis การลบอ็อบเจ็กต์ที่ไม่ใช่สตริงขนาดใหญ่ เช่น แฮช รายการ ชุด และชุดที่จัดเรียง สามารถบล็อกเซิร์ฟเวอร์ของคุณเป็นเวลานาน ซึ่งอาจทำให้เกิดปัญหา เช่น หมดเวลาฝั่งไคลเอ็นต์ ทั้งนี้เนื่องมาจากวิธีการ Redisworks สองประการ:

  • Redis เป็นเธรดเดียว ซึ่งหมายความว่าสามารถประมวลผลคำสั่งได้ครั้งละหนึ่งคำสั่ง ไม่ว่าคุณจะเชื่อมต่อไคลเอ็นต์กี่เครื่อง หากคำสั่งใช้เวลานานในการรัน ทุกคำสั่งอื่นจะต้องรอ

  • DEL เป็น O(n) การดำเนินการกับแฮช รายการ ชุด และชุดที่เรียงลำดับ ซึ่งหมายความว่าออบเจ็กต์ที่มี 1 ล้านองค์ประกอบจะใช้เวลาลบนานกว่าออบเจ็กต์ประเภทเดียวกันที่มีองค์ประกอบ 100 เท่าประมาณ 10,000 เท่า

โชคดีที่ Redis มีเครื่องมือบางอย่างที่เราสามารถใช้ลบออบเจ็กต์ขนาดใหญ่โดยไม่ต้องบล็อกเซิร์ฟเวอร์เป็นเวลานาน เราได้รวบรวมวิธีแก้ปัญหาของเราไว้ที่นี่:

  • การลบแฮชขนาดใหญ่
  • การลบรายการขนาดใหญ่
  • การลบชุดใหญ่
  • การลบชุดการเรียงลำดับขนาดใหญ่