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

วิธีป๊อปและผลักรายการจากที่หนึ่งไปยังอีกรายการหนึ่ง - Redis RPOPLPUSH | BRPOPLPUSH

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

คำสั่ง RPOPLPUSH

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

หากคีย์ต้นทางและปลายทางเหมือนกัน การดำเนินการนี้จะเหมือนกับการหมุนองค์ประกอบรายการ ไวยากรณ์ของคำสั่ง redis RPOPLPUSH มีดังนี้:-

ไวยากรณ์ :-

redis host:post> RPOPLPUSH <keyname-source> <keyname-destination>

ผลลัพธ์ :-

- (string) reply, representing popped element of the source list.
- (nil), if source key does not exists.
- Error, if source or destination key exist and value stored at the key is not a list.

ตัวอย่าง :-

วิธีป๊อปและผลักรายการจากที่หนึ่งไปยังอีกรายการหนึ่ง - Redis RPOPLPUSH | BRPOPLPUSH

คำสั่ง BRPOPLPUSH

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

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

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

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

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

ไวยากรณ์ :-

redis host:post> BRPOPLPUSH <keyname-source> <keyname-destination> <timeout>

ผลลัพธ์ :-

- (string) reply, representing popped element of the source list.
- (nil) reply, when no element could be popped and timeout is expired.

ตัวอย่าง :-

วิธีป๊อปและผลักรายการจากที่หนึ่งไปยังอีกรายการหนึ่ง - Redis RPOPLPUSH | BRPOPLPUSH

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

  1. เอกสารคำสั่ง RPOPLPUSH
  2. เอกสารคำสั่ง BRPOPLPUSH

หากคุณชอบโปรดแบ่งปันความคิดของคุณในส่วนความคิดเห็นและแบ่งปันกับผู้อื่นด้วย

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