ในบทแนะนำนี้ เราจะเรียนรู้เกี่ยวกับวิธีลบและส่งคืนองค์ประกอบแรกของค่ารายการที่เก็บอยู่ที่คีย์ในที่เก็บข้อมูล redis สำหรับสิ่งนี้ เราจะใช้ redis LPOP และ BLPOP คำสั่ง
คำสั่ง LPOP
คำสั่งนี้ใช้เพื่อลบและส่งคืนองค์ประกอบแรกของค่ารายการที่เก็บอยู่ที่คีย์ที่ระบุ ค่า Nil จะถูกส่งคืน หากไม่มีคีย์และข้อผิดพลาดถูกส่งคืน หากมีคีย์ แต่ค่าที่เก็บไว้ที่คีย์ไม่ใช่ประเภทข้อมูลของรายการ ไวยากรณ์ของคำสั่ง Redis LPOP มีดังนี้ :-
ไวยากรณ์ :-
โฮสต์ซ้ำ:โพสต์> LPOP
ผลลัพธ์ :-
- (สตริง) ตอบกลับแทนองค์ประกอบแรกของ list.- (ไม่มี) หากคีย์ไม่มีอยู่- ข้อผิดพลาดหากมีคีย์และค่าที่เก็บไว้ที่คีย์ไม่ใช่รายการ
ตัวอย่าง :-
คำสั่ง 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[ ]
ผลลัพธ์ :-
- (อาร์เรย์) ตอบกลับ องค์ประกอบสองรายการจะถูกส่งคืนโดยองค์ประกอบแรกคือชื่อของคีย์องค์ประกอบที่แตก และองค์ประกอบที่สองคือองค์ประกอบที่แตกเอง- (ไม่มี) เมื่อองค์ประกอบใดไม่สามารถปรากฏขึ้นและหมดเวลาได้ก่อน>ตัวอย่าง :-
ข้อมูลอ้างอิง :-
- เอกสารคำสั่ง LPOP
- เอกสารคำสั่ง BLPOP
นั่นคือทั้งหมดสำหรับวิธีลบและส่งคืนองค์ประกอบแรกของค่ารายการที่จัดเก็บไว้ใน datastore redis หากคุณชอบโปรดแบ่งปันความคิดของคุณในส่วนความคิดเห็นและแบ่งปันกับผู้อื่นด้วย
<- รายการคำสั่ง