ใน Redis การลบอ็อบเจ็กต์ที่ไม่ใช่สตริงขนาดใหญ่ เช่น แฮช รายการ ชุด และชุดที่จัดเรียง สามารถบล็อกเซิร์ฟเวอร์ของคุณเป็นเวลานาน ซึ่งอาจทำให้เกิดปัญหา เช่น หมดเวลาฝั่งไคลเอ็นต์ ทั้งนี้เนื่องมาจากวิธีการ Redisworks สองประการ:
-
Redis เป็นเธรดเดียว ซึ่งหมายความว่าสามารถประมวลผลคำสั่งได้ครั้งละหนึ่งคำสั่ง ไม่ว่าคุณจะเชื่อมต่อไคลเอ็นต์กี่เครื่อง หากคำสั่งใช้เวลานานในการรัน ทุกคำสั่งอื่นจะต้องรอ
-
DEL
เป็นO(n)
การดำเนินการกับแฮช รายการ ชุด และชุดที่เรียงลำดับ ซึ่งหมายความว่าออบเจ็กต์ที่มี 1 ล้านองค์ประกอบจะใช้เวลาลบนานกว่าออบเจ็กต์ประเภทเดียวกันที่มีองค์ประกอบ 100 เท่าประมาณ 10,000 เท่า
โชคดีที่ Redis มีเครื่องมือบางอย่างที่เราสามารถใช้ลบออบเจ็กต์ขนาดใหญ่โดยไม่ต้องบล็อกเซิร์ฟเวอร์เป็นเวลานาน เราได้รวบรวมวิธีแก้ปัญหาของเราไว้ที่นี่:
- การลบแฮชขนาดใหญ่
- การลบรายการขนาดใหญ่
- การลบชุดใหญ่
- การลบชุดการเรียงลำดับขนาดใหญ่