Computer >> Máy Tính >  >> Lập trình >> Redis

Làm thế nào để lấy phần tử có điểm thấp nhất của một tập hợp đã sắp xếp - Redis ZPOPMIN | BZPOPMIN

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về cách xóa và trả về phần tử điểm thấp nhất của giá trị tập hợp đã sắp xếp được lưu trữ tại một khóa trong kho dữ liệu redis, bằng cách sử dụng lệnh redis ZPOPMIN và BZPOPMIN.

Lệnh ZPOPMIN

Lệnh này loại bỏ và trả về một hoặc nhiều phần tử có điểm thấp nhất từ ​​giá trị tập hợp đã sắp xếp được lưu trữ tại một khóa được chỉ định. Lệnh nhận count dưới dạng một đối số, đại diện cho tổng số phần tử được xóa khỏi giá trị tập hợp đã sắp xếp. Trong trường hợp, nếu nó không được chỉ định, giá trị mặc định của số đếm là 1. Khi các phần tử được trả về, phần tử có điểm thấp nhất sẽ là phần tử đầu tiên, tiếp theo là các phần tử có điểm cao hơn.

Lỗi được trả về, nếu khóa tồn tại nhưng giá trị được lưu trữ tại khóa không thuộc kiểu dữ liệu đã được sắp xếp và Nil được trả về, nếu khóa không tồn tại.

Cú pháp của lệnh Redis ZPOPMIN như sau:-

Cú pháp:-

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

Đầu ra:-

Trả lời
- (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.

Ví dụ:-

Làm thế nào để lấy phần tử có điểm thấp nhất của một tập hợp đã sắp xếp - Redis ZPOPMIN | BZPOPMIN

Lệnh BZPOPMIN

Lệnh này là một phiên bản chặn của lệnh ZPOPMIN vì nó chặn hoạt động khi không có phần tử nào xuất hiện từ bất kỳ tập hợp được sắp xếp cụ thể nào. Nói cách khác, nó chặn hoạt động khi tất cả các nhóm được sắp xếp cụ thể trống hoặc tất cả các khóa được chỉ định không tồn tại.

Nó loại bỏ và trả về phần tử điểm thấp nhất từ ​​một giá trị đặt được sắp xếp không trống đầu tiên, với các khóa được chỉ định được kiểm tra từ trái sang phải. Vì vậy, ví dụ:lệnh if BZPOPMIN set1 set2 set3 0 được thực thi, trong đó phím set1 không tồn tại (coi như một tập hợp trống), set2 là một tập hợp trống và set3 chứa ba phần tử, sau đó nó sẽ xóa và trả về phần tử có điểm thấp nhất của giá trị tập hợp đã sắp xếp được lưu trữ tại set3 vì nó là tập hợp không trống đầu tiên, khi kiểm tra từ set1 đến set3.

Lệnh này cần thời gian chờ (số nguyên) làm đối số, đại diện cho số giây tối đa để chặn. Thời gian chờ bằng 0 có thể được sử dụng để chặn vô thời hạn.

Cú pháp của lệnh redis BZPOPMIN như sau:-

Cú pháp:-

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

Đầu ra:-

Trả lời
- (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.

Ví dụ:-

Làm thế nào để lấy phần tử có điểm thấp nhất của một tập hợp đã sắp xếp - Redis ZPOPMIN | BZPOPMIN

Tài liệu tham khảo:-

  1. Tài liệu lệnh ZPOPMIN
  2. Tài liệu lệnh BZPOPMIN

Đó là tất cả về cách xóa và trả về phần tử điểm thấp nhất của giá trị tập hợp đã sắp xếp được lưu trữ trong kho dữ liệu redis. 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.