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

ใช้คำสั่ง Redis ZREVRANGEBYSCORE ดึงข้อมูล Sorted Set ตามช่วงคะแนนแบบลำดับมากไปน้อย

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

คำสั่ง ZREVRANGEBYSCORE

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

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

ZREVRANGEBYSCORE set (5 1

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

ZREVRANGEBYSCORE zset (10 (5

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

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

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

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

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

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

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

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

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

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

ตัวอย่าง :-

ใช้คำสั่ง Redis ZREVRANGEBYSCORE ดึงข้อมูล Sorted Set ตามช่วงคะแนนแบบลำดับมากไปน้อย

อ้างอิง :-

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

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