ในบทเรียนนี้ เราจะเรียนรู้วิธีการดึงสมาชิกทั้งหมดของ Sorted Set ที่มีค่าอยู่ในช่วงเฉพาะ และเรียงลำดับแบบ Lexicographical แบบ Ascending (น้อยไปมาก) โดยใช้คำสั่ง Redis ZRANGEBYLEX
คำสั่ง ZRANGEBYLEX
คำสั่งนี้ส่งคืนสมาชิกทั้งหมดของค่า Sorted Set ที่จัดเก็บที่ Key ที่ระบุ ซึ่งมีค่า (การแสดงผลแบบสตริงของสมาชิก) อยู่ระหว่างอาร์กิวเมนต์ min และ max ที่นี่ สมาชิกทั้งหมดในค่า Sorted Set จะถูกแทรกด้วย Score เดียวกัน เพื่อบังคับให้เรียงลำดับแบบ Lexicographical สมาชิกที่ส่งคืนจะอยู่ในลำดับ Lexicographical แบบ Ascending
อาร์กิวเมนต์ min และ max ต้องขึ้นต้นด้วย ( หรือ [ โดยที่ [ ระบุช่วงปิด (Inclusive) และ ( ระบุช่วงเปิด (Exclusive) ตัวอย่างเช่น :-
ZRANGEBYLEX set [a [f
จะส่งคืนสมาชิกทั้งหมดที่ a <= สมาชิก <= f ในขณะที่:
ZRANGEBYLEX set [a (f
จะส่งคืนสมาชิกทั้งหมดที่ a <= สมาชิก < f
อาร์กิวเมนต์ min และ max สามารถมีค่าพิเศษเป็น + หรือ - โดยที่ + ระบุสตริงอนันต์บวก และ - ระบุสตริงอนันต์ลบ ดังนั้นคำสั่ง ZRANGEBYLEX set - + จะส่งคืนสมาชิกทั้งหมดของค่า Sorted Set
อาร์กิวเมนต์ LIMIT (optional) สามารถส่งผ่านในคำสั่งได้ เพื่อดึง count สมาชิกที่ตรงกัน เริ่มจาก offset หากค่า count เป็น negative แล้ว จะส่งคืนสมาชิกทั้งหมดจาก offset ตัวอย่างเช่น:-
ZRANGEBYLEX set [a [f LIMIT 1 3 Where set = [a, b, c, d, e, f, g, h]
จะส่งคืน 3 สมาชิกที่ตรงกัน เริ่มจากสมาชิกที่ 2 ที่ตรงกัน คือ [b, c, d]
จะส่งคืน Empty Set หาก Key ไม่มีอยู่ และจะส่งคืน Error หาก Key มีอยู่แต่ค่าที่จัดเก็บที่ Key ไม่ใช่ชนิดข้อมูล Sorted Set ไวยากรณ์ของคำสั่ง Redis ZRANGEBYLEX มีดังนี้:-
ไวยากรณ์ (Syntax) :-
redis host:port> ZRANGEBYLEX <keyname> <min> <max> [LIMIT offset count]
ผลลัพธ์ (Output) :-
- (array) reply, แสดงสมาชิกของ Sorted Set ในช่วงที่ระบุ - Empty Set, หาก Key ไม่มีอยู่ - Error, หาก Key มีอยู่และค่าที่จัดเก็บที่ Key ไม่ใช่ Sorted Set
ตัวอย่าง (Example) :-

อ้างอิง (References) :-
- ZRANGEBYLEX Command Docs
ขอจบบทเรียนเรื่องวิธีดึงสมาชิกทั้งหมดของ Sorted Set ที่มีค่าอยู่ในช่วงเฉพาะและเรียงลำดับแบบ Ascending หากชอบ กรุณาแชร์ความคิดเห็นในส่วนความคิดเห็นและแชร์ให้คนอื่นๆ ด้วยนะครับ