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

เชี่ยวชาญ Redis SDIFF และ SDIFFSTORE: คำนวณความต่างของ Set อย่างมีประสิทธิภาพ

ในบทเรียนนี้ เราจะเรียนรู้วิธีการดำเนินการหาความต่าง (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}

เชี่ยวชาญ Redis SDIFF และ SDIFFSTORE: คำนวณความต่างของ Set อย่างมีประสิทธิภาพ

คำสั่ง 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) :-

เชี่ยวชาญ Redis SDIFF และ SDIFFSTORE: คำนวณความต่างของ Set อย่างมีประสิทธิภาพ

คำสั่ง 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) :-

เชี่ยวชาญ Redis SDIFF และ SDIFFSTORE: คำนวณความต่างของ Set อย่างมีประสิทธิภาพ

อ้างอิง (References) :-

  1. SDIFF Command Docs
  2. SDIFFSTORE Command Docs

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