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

วิธีรับองค์ประกอบคะแนนสูงสุดของชุดที่จัดเรียง – Redis ZPOPMAX | BZPOPMAX

ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับวิธีลบและส่งคืนองค์ประกอบคะแนนสูงสุดของชุดค่าที่จัดเรียงซึ่งจัดเก็บไว้ในคีย์ใน datastore redis โดยใช้คำสั่ง redis ZPOPMAX และ BZPOPMAX

คำสั่ง ZPOPMAX

คำสั่งนี้จะลบและส่งคืนองค์ประกอบคะแนนสูงสุดอย่างน้อยหนึ่งรายการจากค่าชุดที่จัดเรียงซึ่งจัดเก็บไว้ที่คีย์ที่ระบุ คำสั่งใช้ นับ เป็นอาร์กิวเมนต์ ซึ่งแสดงถึงจำนวนองค์ประกอบทั้งหมดที่จะลบออกจากค่าชุดที่จัดเรียง ในกรณีที่ไม่ได้ระบุ ค่าเริ่มต้นของการนับคือ 1 เมื่อองค์ประกอบถูกส่งกลับ รายการที่มีคะแนนสูงสุดจะเป็นอันดับแรก ตามด้วยองค์ประกอบที่มีคะแนนต่ำกว่า

ข้อผิดพลาดจะถูกส่งคืน หากมีคีย์ แต่ค่าที่เก็บไว้ที่คีย์ไม่ใช่ประเภทข้อมูลของชุดที่จัดเรียง และระบบจะส่งกลับค่า Nil หากไม่มีคีย์

ไวยากรณ์ของคำสั่ง Redis ZPOPMAX มีดังนี้ :-

ไวยากรณ์ :-

redis host:post> ZPOPMAX <keyname> <count>

ผลลัพธ์ :-

- (array) reply, representing elements and scores of the sorted set.
- (nil), if key does not exists.
- Error, if key exist and value stored at the key is not a sorted set.

ตัวอย่าง :-

วิธีรับองค์ประกอบคะแนนสูงสุดของชุดที่จัดเรียง – Redis ZPOPMAX | BZPOPMAX

คำสั่ง BZPOPMAX

คำสั่งนี้เป็นคำสั่ง ZPOPMAX เวอร์ชันบล็อก เนื่องจากจะบล็อกการดำเนินการเมื่อไม่มีองค์ประกอบที่จะแสดงจากชุดที่จัดเรียงที่ระบุ กล่าวคือจะบล็อกการดำเนินการเมื่อชุดการจัดเรียงที่ระบุทั้งหมดว่างเปล่าหรือไม่มีคีย์ที่ระบุทั้งหมด

โดยจะลบและส่งคืนองค์ประกอบคะแนนสูงสุดจากค่าชุดการจัดเรียงที่ไม่ว่างเปล่าชุดแรก โดยมีการตรวจสอบคีย์ที่ระบุจากซ้ายไปขวา ตัวอย่างเช่น ถ้าคำสั่ง BZPOPMAX set1 set2 set3 0 ถูกดำเนินการ โดยที่คีย์ set1 ไม่มีอยู่ (ถือว่าเป็นชุดว่าง ), set2 เป็นเซตว่างและ set3 มีสามองค์ประกอบ จากนั้นจะลบและส่งคืนองค์ประกอบคะแนนสูงสุดของชุดค่าที่จัดเรียงซึ่งเก็บไว้ที่ set3 เนื่องจากเป็นเซตไม่ว่างชุดแรก เมื่อตรวจสอบจาก set1 ถึง set3

คำสั่งนี้ใช้เวลา หมดเวลา ( integer ) เป็นอาร์กิวเมนต์ ซึ่งแสดงถึงจำนวนวินาทีสูงสุดที่จะบล็อก สามารถใช้ระยะหมดเวลาเป็นศูนย์เพื่อบล็อกได้ไม่มีกำหนด

ไวยากรณ์ของคำสั่ง redis BZPOPMAX มีดังนี้ :-

ไวยากรณ์ :-

redis host:post> BZPOPMAX <keyname> [ <keyname> ] <timeout>

ผลลัพธ์ :-

- (array) reply, three elements are returned where first element is name of the sorted set key, the 
  second element is the score of the popped element and third element is the popped element itself.
- (nil), when no element could be popped and timeout is expired.

ตัวอย่าง :-

วิธีรับองค์ประกอบคะแนนสูงสุดของชุดที่จัดเรียง – Redis ZPOPMAX | BZPOPMAX

ข้อมูลอ้างอิง :-

  1. เอกสารคำสั่ง ZPOPMAX
  2. เอกสารคำสั่ง BZPOPMAX

นั่นคือทั้งหมดสำหรับวิธีการลบและส่งคืนองค์ประกอบคะแนนสูงสุดของชุดค่าที่จัดเรียงซึ่งจัดเก็บไว้ใน datastore redis หากคุณชอบโปรดแบ่งปันความคิดของคุณในส่วนความคิดเห็นและแบ่งปันกับผู้อื่นด้วย