LSET củ cải

Lset Cu Cai



Danh sách Redis là một cấu trúc dữ liệu chứa một chuỗi các phần tử chuỗi theo thứ tự chèn. Nó dựa trên Danh sách liên kết. Vì vậy, việc chèn một phần tử ở đầu và đuôi được thực hiện trong thời gian không đổi. Nhược điểm duy nhất của danh sách Redis là việc truy vấn các phần tử theo chỉ mục là hơi tốn kém, mất thời gian tỷ lệ thuận với chỉ mục của phần tử truy cập. Lý do đằng sau việc triển khai dựa trên danh sách được Liên kết là để làm cho việc chèn dữ liệu nhanh hơn cho một danh sách rất dài các mục.

Danh sách Redis có lập chỉ mục dựa trên 0. Phần tử đầu tiên được chỉ định là 0 thứ tự mục lục; cái thứ hai ở vị trí số 1 st chỉ mục, v.v. Có thể truy cập các phần tử đuôi với các chỉ mục với các chỉ số âm như phần tử cuối cùng được lập chỉ mục là -1, phần tử áp chót là -2, v.v.









Các phần tử danh sách có thể được thiết lập tại bất kỳ chỉ mục nhất định nào bằng lệnh LSET, lệnh này được mô tả trong phần sau.



Lệnh LSET

Lệnh LSET đặt một phần tử tại chỉ mục nhất định của danh sách Redis được lưu trữ tại khóa được chỉ định. Nó có cú pháp đơn giản sau:





LSET phần tử chỉ mục list_key

list_key : Chìa khóa của danh sách Redis.

mục lục : Chỉ mục mà bạn cần đặt một phần tử.



yếu tố : Phần tử chuỗi được đặt tại chỉ mục đã chỉ định.

Lệnh này trả về một chuỗi Đơn giản “OK” nếu phần tử đã được đặt đúng cách. Bất cứ khi nào nó gặp một chỉ mục nằm ngoài phạm vi, lệnh LSET sẽ trả về một lỗi.

Một trong những trường hợp sử dụng phổ biến nhất của danh sách Redis là lưu trữ các bài đăng trên mạng xã hội và các cập nhật của chúng cho người dùng cá nhân. Lệnh LSET đóng một vai trò quan trọng ở đó, như được thảo luận trong phần sau.

Trường hợp sử dụng - Cập nhật bài đăng trên mạng xã hội

Giả sử một sự kiện trong đó một công ty duy trì trang web truyền thông xã hội của riêng mình với hàng nghìn người dùng tích cực đăng các bài đăng và trạng thái. Họ đã xác định rằng danh sách Redis là ứng cử viên phù hợp để giữ các bài đăng và trạng thái này mà việc chèn thường xuyên xảy ra và danh sách Redis thực hiện chèn trong thời gian liên tục.

Hãy tạo danh sách Redis cho một id người dùng nhất định 100 sẽ được sử dụng để lưu trữ các bài đăng và thông báo trạng thái của người dùng cụ thể đó. Chúng tôi sẽ sử dụng lệnh LPUSH để đặt một số bài đăng giả và thông báo trạng thái cho id người dùng 100.

Phương tiện truyền thông xã hội LPUSH: người dùng: 100 '2022-08-01: Một ngày tốt lành để bắt đầu.'
LPUSH social-media: user: 100 '2022-08-05: Bắt đầu công việc mới tại linuxhint'
Phương tiện truyền thông xã hội LPUSH: người dùng: 100 '2022-08-06: Bữa tiệc tuyệt vời hôm nay'
Phương tiện truyền thông xã hội LPUSH: người dùng: 100 '2022-08-07: Ngày tồi tệ !!!'

Đầu ra

Giả sử rằng người dùng có id người dùng 100 sẽ cập nhật một trong các bài đăng cũ của anh ta. Giả sử bài thứ ba mà anh ấy đã đăng cần một số chỉnh sửa. Lệnh LSET có thể dễ dàng đạt được điều này, như thể hiện trong hình sau.

Vì phần tử thứ ba nằm ở chỉ số 2 từ Head. Chúng tôi sẽ cập nhật nó như sau:

LSET social-media: user: 100 2 'Bắt đầu vai trò mới với tư cách là một nhà văn tại LinuxHint'

Đầu ra

Như mong đợi, lệnh đã được thực hiện thành công và phần tử ở chỉ mục thứ hai đã được cập nhật. Hãy kiểm tra lại danh sách như sau:

Chúng ta có thể làm tương tự bằng cách chỉ định chỉ mục từ đuôi như sau:

Phương tiện truyền thông xã hội LSET: người dùng: 100 -2 'Bắt đầu vai trò mới với tư cách là nhà văn tại LinuxHint'

Như mong đợi, phần tử thứ ba đã được đặt thành chuỗi mới “Công việc đã bắt đầu tại LinuxHINT”.

Nếu bạn chỉ định một chỉ mục nằm ngoài phạm vi, nó sẽ gây ra lỗi, như được hiển thị trong phần sau:

LSET social-media: user: 100 6 'Công việc đã bắt đầu tại LinuxHINT'

Đầu ra

Sự kết luận

Lệnh LSET đặt một phần tử danh sách tại một chỉ mục được chỉ định thành một phần tử nhất định của danh sách Redis được lưu trữ tại một khóa nhất định. Vì các chỉ mục của danh sách Redis bắt đầu từ 0 nên nó là phần tử đầu tiên. Chỉ mục 1 là phần tử thứ hai của danh sách, v.v. Như đã thảo luận, chỉ số của các phần tử bắt đầu từ đuôi có thể được chỉ định bằng cách sử dụng các số âm như -1 là phần tử cuối cùng, -2 là phần tử trước phần tử cuối cùng, v.v. Bất cứ khi nào một chỉ mục không tồn tại được chuyển qua, lệnh LSET sẽ trả về một lỗi. Hơn nữa, lệnh này trả về một đầu ra chuỗi đơn giản khi thực hiện thành công.