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

วิธีลบและส่งคืนองค์ประกอบแรกของรายการ – Redis LPOP | BLPOP

ในบทแนะนำนี้ เราจะเรียนรู้เกี่ยวกับวิธีลบและส่งคืนองค์ประกอบแรกของค่ารายการที่เก็บอยู่ที่คีย์ในที่เก็บข้อมูล redis สำหรับสิ่งนี้ เราจะใช้ redis LPOP และ BLPOP คำสั่ง

คำสั่ง LPOP

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

ไวยากรณ์ :-

โฮสต์ซ้ำ:โพสต์> LPOP 

ผลลัพธ์ :-

- (สตริง) ตอบกลับแทนองค์ประกอบแรกของ list.- (ไม่มี) หากคีย์ไม่มีอยู่- ข้อผิดพลาดหากมีคีย์และค่าที่เก็บไว้ที่คีย์ไม่ใช่รายการ

ตัวอย่าง :-

วิธีลบและส่งคืนองค์ประกอบแรกของรายการ – Redis LPOP | BLPOP

คำสั่ง BLPOP

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

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

หากไม่มีคีย์ที่ระบุหรือค่ารายการของคีย์ที่ระบุว่างเปล่า BLPOP จะบล็อกการดำเนินการจนกว่าไคลเอ็นต์อื่นจะเรียกใช้คำสั่ง เช่น LPUSH, RPUSH และ LINSERT เพื่อแทรกองค์ประกอบในคีย์ที่ระบุ เมื่อมีองค์ประกอบใหม่ในค่ารายการใดค่าหนึ่ง ไคลเอ็นต์จะส่งคืนพร้อมกับชื่อของคีย์ที่ปลดล็อกและค่าที่ปรากฏขึ้น

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

อาร์กิวเมนต์การหมดเวลาคือค่าจำนวนเต็มที่แสดงจำนวนวินาทีสูงสุดที่จะบล็อก สามารถใช้การหมดเวลา 0 วินาทีเพื่อบล็อกได้ไม่มีกำหนด

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

ไวยากรณ์ :-

redis host:post> BLPOP  [  ] 

ผลลัพธ์ :-

- (อาร์เรย์) ตอบกลับ องค์ประกอบสองรายการจะถูกส่งคืนโดยองค์ประกอบแรกคือชื่อของคีย์องค์ประกอบที่แตก และองค์ประกอบที่สองคือองค์ประกอบที่แตกเอง- (ไม่มี) เมื่อองค์ประกอบใดไม่สามารถปรากฏขึ้นและหมดเวลาได้ 

ตัวอย่าง :-

วิธีลบและส่งคืนองค์ประกอบแรกของรายการ – Redis LPOP | BLPOP

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

  1. เอกสารคำสั่ง LPOP
  2. เอกสารคำสั่ง BLPOP

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

<- รายการคำสั่ง