Trong hướng dẫn này, chúng ta sẽ tìm hiểu về cách xóa và trả lại phần tử cuối cùng của giá trị danh sách được lưu trữ tại một khóa và chèn cùng một phần tử vào vị trí đầu tiên của giá trị danh sách được lưu trữ tại khóa khác trong kho dữ liệu redis. Đối với điều này, chúng tôi sẽ sử dụng Redis RPOPLPUSH và BRPOPLPUSH lệnh.
Lệnh RPOPLPUSH
Lệnh này được sử dụng để xóa và trả lại phần tử từ đuôi (cuối) của giá trị danh sách được lưu trữ tại khóa nguồn và chèn phần tử tương tự vào đầu (bắt đầu) của giá trị danh sách được lưu trữ tại khóa đích. Nếu khóa nguồn không tồn tại, giá trị nil được trả về và không có thao tác nào được thực hiện. Nếu khóa đích không tồn tại, trước tiên nó được tạo dưới dạng danh sách trống trước khi thực hiện thao tác chèn.
Nếu khóa nguồn và khóa đích giống nhau, thì thao tác này giống như xoay các phần tử danh sách. Cú pháp của lệnh redis RPOPLPUSH như sau:-
Cú pháp:-
redis host:post> RPOPLPUSH <keyname-source> <keyname-destination>
Đầu ra:-
Trả lời- (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.
Ví dụ:-
Lệnh BRPOPLPUSH
Lệnh này là một phiên bản chặn của lệnh RPOPLPUSH vì nó chặn hoạt động khi không có phần tử nào để bật ra từ giá trị danh sách nguồn. Nói cách khác, nó chặn hoạt động khi giá trị danh sách tại khóa nguồn trống hoặc khóa nguồn không tồn tại.
Khi một ứng dụng khách khác thực thi một lệnh như LPUSH, RPUSH và LINSERT để chèn một phần tử trong giá trị danh sách nguồn, thì ứng dụng khách sẽ được bỏ chặn để thực hiện hoạt động RPOPLPUSH.
Khi thời gian chờ khác 0 được chỉ định và thời gian chờ đã hết mà không có thao tác chèn đối với khóa nguồn, thì ứng dụng khách sẽ nhận được lệnh bỏ chặn trả về giá trị null.
Đối số thời gian chờ là một giá trị số nguyên đại diện cho số giây tối đa để chặn. Thời gian chờ 0 giây có thể được sử dụng để chặn vô thời hạn.
Cú pháp của lệnh Redis BRPOPLPUSH như sau:-
Cú pháp:-
redis host:post> BRPOPLPUSH <keyname-source> <keyname-destination> <timeout>
Đầu ra:-
Trả lời- (string) reply, representing popped element of the source list. - (nil) reply, when no element could be popped and timeout is expired.
Ví dụ:-
Tài liệu tham khảo:-
- Tài liệu lệnh RPOPLPUSH
- Tài liệu lệnh BRPOPLPUSH
Nếu bạn thích nó, hãy chia sẻ suy nghĩ của bạn trong phần bình luận và chia sẻ nó với những người khác.