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

เรียนรู้คำสั่ง Redis ZREVRANGE: ดึงข้อมูล Sorted Set ตามอันดับแบบ Descending

ในบทเรียนนี้ เราจะเรียนรู้วิธีการดึงสมาชิกหนึ่งหรือหลายรายการจาก Sorted Set ที่มีอันดับ (rank) อยู่ในช่วงที่กำหนด โดยเรียงลำดับตามคะแนน (score) แบบ descending สำหรับวัตถุประสงค์นี้ เราจะใช้คำสั่ง ZREVRANGE ของ Redis

คำสั่ง ZREVRANGE

คำสั่ง ZREVRANGE จะคืนค่าสมาชิกหนึ่งหรือหลายรายการของ Sorted Set ที่เก็บอยู่ใน key ที่ระบุ โดยกำหนดช่วง (range) ที่ต้องการ สมาชิกใน Sorted Set จะถูกเรียงลำดับตามคะแนน (score) แบบ descending หากมีคะแนนเท่ากัน จะใช้ลำดับแบบ lexicographical descending

ช่วง (range) ถูกกำหนดโดย offset เริ่มต้น (start - inclusive) และ offset สิ้นสุด (stop - inclusive) ซึ่งเป็น zero-based index โดย 0 หมายถึงสมาชิกแรก 1 หมายถึงสมาชิกที่สอง และต่อไป สามารถใช้เลขลบเพื่อระบุ offset นับจากท้ายรายการได้ โดย -1 หมายถึงสมาชิกสุดท้าย -2 หมายถึงสมาชิกลำดับสองจากท้าย และต่อไป

กรณีที่ offset อยู่นอกช่วง (out of range) จะถูกจัดการดังนี้:

  1. (start > stop) หรือ (start > ขนาดของ Sorted Set): ผลลัพธ์คือรายการว่าง (empty list)
  2. (stop > ขนาดของ Sorted Set): index ของสมาชิกสุดท้ายจะถูกตั้งค่าเป็น stop offset

หาก key ไม่มีอยู่ จะคืนค่า empty set หาก key มีอยู่แต่ค่าที่เก็บไม่ใช่ Sorted Set จะคืนค่า error

อาร์กิวเมนต์ WITHSCORES (optional) สามารถระบุได้ในคำสั่ง เพื่อดึงคะแนนของสมาชิกมาพร้อมกับค่าของสมาชิก ในกรณีนี้ array ที่คืนค่าจะมีรูปแบบ value1, score1, ..., valueN, scoreN แทนที่จะเป็น value1, ..., valueN เท่านั้น

Syntax

redis host:port> ZREVRANGE <keyname> <start> <stop> [WITHSCORES]

Output

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

ตัวอย่าง

เรียนรู้คำสั่ง Redis ZREVRANGE: ดึงข้อมูล Sorted Set ตามอันดับแบบ Descending

อ้างอิง

  1. ZREVRANGE Command Docs

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