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

ใช้ Redis ZINTERSTORE: รวม Sorted Sets ด้วยการหาส่วนร่วมอย่างมีประสิทธิภาพ

ในบทเรียนนี้ เราจะเรียนรู้วิธีการดำเนินการหาส่วนร่วม (Intersection) บน Sorted Set 2 ชุดขึ้นไปที่จัดเก็บใน Redis Datastore โดยใช้คำสั่ง Redis ZINTERSTORE

ส่วนร่วมของ Set (Intersection of Sets):

ในทฤษฎีเซต ส่วนร่วมของเซต 2 ชุดขึ้นไป คือเซตที่ประกอบด้วยสมาชิกที่เหมือนกันในทุกเซต ตัวอย่าง :

A = {1, 2, 3, 4, 5} B = {4, 5, 6, 7, 8, 9} ส่วนร่วมของ A & B :- A ∩ B = {4, 5}

ใช้ Redis ZINTERSTORE: รวม Sorted Sets ด้วยการหาส่วนร่วมอย่างมีประสิทธิภาพ

คำสั่ง ZINTERSTORE :-

คำสั่งนี้ดำเนินการหาส่วนร่วมของ Sorted Set 2 ชุดขึ้นไปที่ระบุ และส่งคืนค่า Sorted Set ใหม่ที่จัดเก็บที่ Key ที่ระบุ Sorted Set ที่ไม่มีอยู่ถูกมองว่าเป็น Empty Sorted Set จะส่งคืน Error หาก Key มีอยู่แต่ค่าที่จัดเก็บที่ Key ไม่ใช่ Sorted Set ไวยากรณ์ของคำสั่ง Redis ZINTERSTORE มีดังนี้ :-

ไวยากรณ์ (Syntax) :-

redis host:port> ZINTERSTORE <destination> numkeys <keyName> [<keyName>] [WEIGHTS weight [weight]] [AGGREGATE SUM|MIN|MAX]

ผลลัพธ์ (Output) :-

- (array) reply, มีสมาชิกผลลัพธ์จากการหาส่วนร่วม - Error, หาก Key มีอยู่และค่าที่จัดเก็บที่ Key ไม่ใช่ Sorted Set 

numkeys คือจำนวน Input Key ที่มีค่า Sorted Set ที่จะดำเนินการหาส่วนร่วม ต้องส่ง numkeys ก่อนส่ง Input Key และอาร์กิวเมนต์อื่นๆ ผลลัพธ์จะถูกจัดเก็บใน Sorted Set ใหม่ที่ destination Key หาก Destination Key มีอยู่แล้ว จะถูก Overwrite

WEIGHTS ตัวเลือกนี้ใช้ระบุตัวคูณ (Multiplication Factor) สำหรับ Input Sorted Set แต่ละชุด หมายความว่า Score ของทุกสมาชิกใน Input Sorted Set ทั้งหมดจะถูกคูณด้วยตัวคูณนี้ ก่อนส่งเข้าฟังก์ชัน Aggregation หากไม่ส่ง WEIGHTS ตัวคูณจะถูกนับเป็น 1

AGGREGATE ตัวเลือกนี้ใช้ระบุวิธีการรวมผลลัพธ์ของการหาส่วนร่วม ค่าเริ่มต้นคือ SUM หมายถึง Score ของสมาชิกจะถูกรวมกันจาก Input Sorted Set ทุกชุดที่มีอยู่ เมื่อตั้งค่าเป็น MIN หรือ MAX Set ที่ได้จะมี Score ต่ำสุดหรือสูงสุดของสมาชิกข้าม Input Sorted Set ที่มีอยู่

ตัวอย่าง (Example) :-

ใช้ Redis ZINTERSTORE: รวม Sorted Sets ด้วยการหาส่วนร่วมอย่างมีประสิทธิภาพ

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

  1. ZINTERSTORE Command Docs

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