ในบทเรียนนี้ เราจะเรียนรู้วิธีการดำเนินการหาความต่าง (Difference) บน Set 2 ชุดขึ้นไปที่จัดเก็บใน Redis Datastore โดยใช้คำสั่ง Redis SDIFF และ SDIFFSTORE
ความต่างของ Set (Difference of Sets):
ในทฤษฎีเซต ความต่างของเซต 2 ชุด A และ B เขียนเป็น A - B คือเซตที่ประกอบด้วยสมาชิกทั้งหมดของเซต A ที่ไม่ได้อยู่ในเซต B ตัวอย่าง :
A = {1, 2, 3, 4, 5} B = {4, 5, 6, 7, 8, 9} ความต่างของ A & B :- A - B = {1, 2, 3}
คำสั่ง SDIFF :-
คำสั่งนี้ดำเนินการหาความต่างบน Set 2 ชุดขึ้นไปที่ระบุ และส่งคืนผลลัพธ์เป็น Array หาก Key ที่ระบุใดๆ ไม่มีอยู่ จะถือเป็น Empty Set จะส่งคืน Error หาก Key มีอยู่แต่ค่าที่จัดเก็บที่ Key ไม่ใช่ Set ไวยากรณ์ของคำสั่ง Redis SDIFF มีดังนี้ :-
ไวยากรณ์ (Syntax) :-
redis host:port> SDIFF <keyName 1> <keyName 2> <keyName 3>
ผลลัพธ์ (Output) :-
- (array) reply, มีสมาชิกผลลัพธ์จากการหาความต่าง - Error, หาก Key มีอยู่และค่าที่จัดเก็บที่ Key ไม่ใช่ Set
ตัวอย่าง (Example) :-

คำสั่ง SDIFFSTORE :-
คำสั่งนี้ดำเนินการหาความต่างบน Set 2 ชุดขึ้นไปที่ระบุ และส่งคืนค่า Set ใหม่ที่จัดเก็บที่ Key ที่ระบุ หาก Key ที่ระบุใดๆ ไม่มีอยู่ จะถือเป็น Empty Set จะส่งคืน Error หาก Key มีอยู่แต่ค่าที่จัดเก็บที่ Key ไม่ใช่ Set ไวยากรณ์ของคำสั่ง Redis SDIFFSTORE มีดังนี้ :-
ไวยากรณ์ (Syntax) :-
redis host:port> SDIFFSTORE <destination keyName> <keyName 1> <keyName 2> <keyName 3>
ผลลัพธ์ (Output) :-
- (integer) แสดงจำนวนสมาชิกใน Set ปลายทาง - Error, หาก Key มีอยู่และค่าที่จัดเก็บที่ Key ไม่ใช่ Set
ตัวอย่าง (Example) :-

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