ในบทเรียนนี้ เราจะเรียนรู้วิธีการสร้างและเพิ่มสมาชิกในค่า Sorted Set ที่จัดเก็บที่ Key โดยใช้คำสั่ง Redis ZADD
คำสั่ง ZADD ใช้เพื่อเพิ่มสมาชิก 1 รายการหรือหลายรายการ พร้อม Score ของแต่ละรายการ ในค่า Sorted Set ที่จัดเก็บที่ Key ที่ระบุ หากสมาชิกที่ระบุมีอยู่แล้ว Score ของสมาชิกจะถูกอัปเดต และสมาชิกจะถูกแทรกใหม่ที่ตำแหน่งที่ถูกต้องเพื่อให้แน่ใจว่าลำดับถูกต้อง ค่า Score ควรเป็นการแสดงผลแบบสตริงของเลขทศนิยมความแม่นยำคู่ (double precision floating point) ค่า +inf และ -inf เป็นค่าที่ถูกต้อง
หาก Key ไม่มีอยู่ใน Datastore จะสร้าง Sorted Set ใหม่ก่อนทำการแทรก หาก Key มีอยู่แต่ค่าที่จัดเก็บที่ Key ไม่ใช่ชนิดข้อมูล Sorted Set จะส่งคืน Error
อาร์กิวเมนต์ตัวเลือก (Optional Arguments)
คำสั่ง Redis ZADD รับอาร์กิวเมนต์ตัวเลือกดังต่อไปนี้ :-
- XX :- อัปเดตเฉพาะสมาชิกที่มีอยู่ใน Sorted Set แล้วเท่านั้น ไม่เพิ่มสมาชิกใหม่
- NX :- เพิ่มเฉพาะสมาชิกใหม่ใน Sorted Set เท่านั้น ไม่อัปเดตสมาชิกที่มีอยู่แล้ว
- CH :- เปลี่ยนค่าส่งคืนจากจำนวนสมาชิกใหม่ที่แทรก เป็นจำนวนสมาชิกที่เปลี่ยนแปลงทั้งหมด สมาชิกที่เปลี่ยนแปลงคือ สมาชิกใหม่ที่เพิ่ม และสมาชิกที่มีอยู่แล้วซึ่ง Score ถูกอัปเดต ดังนั้น สมาชิกที่ระบุในคำสั่งที่มี Score เหมือนเดิมจะไม่นับ
- INCR :- หากตัวเลือกนี้ระบุ ZADD จะทำงานเหมือนคำสั่ง ZINCRBY สามารถระบุคู่ Score-Element ได้เพียง 1 คู่ในโหมดนี้ ตั้งค่าสตริงได้ก็ต่อเมื่อ Key มีอยู่แล้ว
สมาชิกใน Sorted Set เรียงลำดับแบบ Ascending ตาม Score ของพวกเขา สำหรับสมาชิกที่มี Score เท่ากัน จะรักษาลำดับ Lexicographical ไว้ ไวยากรณ์ของคำสั่ง Redis ZADD มีดังนี้ :-
ไวยากรณ์ (Syntax) :-
redis host:port> ZADD <key> [XX|NX] [CH] [INCR] <score> <member> [<score> <member>]
ผลลัพธ์ (Output) :-
- (integer value), แสดงจำนวนสมาชิกที่เพิ่มเข้า Sorted Set ไม่นับสมาชิกที่มีอยู่แล้ว - error, หาก Key มีอยู่และค่าที่จัดเก็บที่ Key ไม่ใช่ Sorted Set
ตัวอย่าง (Example) :-

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