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

เชี่ยวชาญ Redis ZRANGEBYSCORE: ดึงข้อมูล Sorted Set ตามช่วงคะแนนแบบลำดับน้อยไปมาก

ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีการดึงสมาชิกทั้งหมดของ Sorted Set ที่มีคะแนนอยู่ในช่วงที่กำหนด โดยเรียงลำดับจากคะแนนต่ำสุดไปสูงสุด สำหรับการทำงานนี้ เราจะใช้คำสั่ง ZRANGEBYSCORE ของ Redis

คำสั่ง ZRANGEBYSCORE

คำสั่งนี้จะคืนค่าสมาชิกทั้งหมดของ Sorted Set ที่มีคะแนนมากกว่าหรือเท่ากับ min (รวม) และน้อยกว่าหรือเท่ากับ max (รวม) ที่ส่งผ่านเป็นอาร์กิวเมนต์ ผลลัพธ์จะถูกเรียงลำดับตามคะแนนจากน้อยไปมาก สำหรับสมาชิกที่มีคะแนนเท่ากัน จะเรียงตามลำดับเล็กซิโคกราฟิกแบบน้อยไปมาก

โดยค่าเริ่มต้น อาร์กิวเมนต์ min และ max จะเป็นช่วงปิด (inclusive) แต่สามารถระบุเป็นช่วงเปิด (exclusive) ได้โดยการเติมเครื่องหมาย ( นำหน้า ตัวอย่างเช่น:

ZRANGEBYSCORE set (1 5

จะคืนค่าสมาชิกที่มีคะแนน 1 < score ≤ 5 ในขณะที่:

ZRANGEBYSCORE zset (5 (10

จะคืนค่าสมาชิกที่มีคะแนน 5 < score < 10 (ไม่นับ 5 และ 10)

อาร์กิวเมนต์ min และ max สามารถใช้เป็น -inf (อนันต์ลบ) และ +inf (อนันต์บวก) ได้ ทำให้ไม่จำเป็นต้องรู้คะแนนสูงสุดหรือต่ำสุดใน Sorted Set ก็สามารถดึงข้อมูลจากหรือถึงช่วงคะแนนใดก็ได้

อาร์กิวเมนต์เสริม (Optional Arguments)

คำสั่ง ZRANGEBYSCORE ของ Redis รองรับอาร์กิวเมนต์เสริมดังต่อไปนี้:

  1. WITHSCORES :- คืนค่าคะแนนของสมาชิกพร้อมกับสมาชิก ในกรณีนี้ อาร์เรย์ที่คืนจะมีรูปแบบ value1, score1, ..., valueN, scoreN แทนที่จะเป็น value1, ..., valueN เท่านั้น
  2. LIMIT :- คืนค่าจำนวน count สมาชิกที่ตรงเงื่อนไข เริ่มจากตำแหน่ง offset หากค่า count เป็น ลบ จะคืนค่าสมาชิกทั้งหมดตั้งแต่ offset

จะคืนค่าชุดว่างหากคีย์ไม่มีอยู่ และคืนค่าข้อผิดพลาดหากคีย์มีอยู่แต่ข้อมูลที่เก็บไม่ใช่ชนิด Sorted Set ไวยากรณ์ของคำสั่ง ZRANGEBYSCORE มีดังนี้:

ไวยากรณ์ (Syntax):-

redis host:port> ZRANGEBYSCORE <keyname> <min> <max> [WITHSCORES] [LIMIT offset count]

ผลลัพธ์ (Output):-

- (array) reply แสดงสมาชิกของ Sorted Set ในช่วงที่ระบุ - Empty Set หากคีย์ไม่มีอยู่ - Error หากคีย์มีอยู่และข้อมูลไม่ใช่ Sorted Set

ตัวอย่าง :-

เชี่ยวชาญ Redis ZRANGEBYSCORE: ดึงข้อมูล Sorted Set ตามช่วงคะแนนแบบลำดับน้อยไปมาก

อ้างอิง :-

  1. เอกสารคำสั่ง ZRANGEBYSCORE

ขอจบบทช่วยสอนวิธีการดึงสมาชิก Sorted Set ตามช่วงคะแนนแบบเรียงน้อยไปมากที่เก็บใน Redis datastore หากชอบบทความนี้ กรุณาแบ่งปันความคิดเห็นและแชร์ให้ผู้อื่นทราบด้วยครับ