12/08/2018, 16:11

The circumstance use redis in the Web applications

Đây là box ghi lại một số hành động mới nhất của thành viên trên Mạng Việt Nam. Mỗi hành động (cho phép) sẽ được lưu thành 1 items trong dữ liệu dạng LIST. Với key là AiDangLamGi chẳng hạn. Thêm hành động mới ta dùng lệnh LPUSH – thêm 1 phần tử vào bên trái danh sách, để đảm bảo chỉ có N ...

Đây là box ghi lại một số hành động mới nhất của thành viên trên Mạng Việt Nam. Mỗi hành động (cho phép) sẽ được lưu thành 1 items trong dữ liệu dạng LIST. Với key là AiDangLamGi chẳng hạn.

Thêm hành động mới ta dùng lệnh LPUSH – thêm 1 phần tử vào bên trái danh sách, để đảm bảo chỉ có N hành động mới nhất ta dùng lệnh LTRIM – giữ lại N phần tử trong danh sách, tính từ bên trái. Lưu ý rằng trên một LIST khi có 2 user đồng thời có hành động phải LPUSH, thì lock sẽ xảy ra.

Bài toán này tương tự với: Lấy 10 items mới nhất như comment, blog, …

Giả sử ta đang lưu như trên với 10 comment mới nhất, nhưng có 1 comment ID nào đó bị xóa. Vậy theo logic ta phải loại nó ra khỏi 10 comment mới nhất. Để xóa 1 comment theo ID trong LIST, ta dùng lệnh LREM.

Câu hỏi đặt ra là, như vậy ta chỉ hiển thị được 9 comment mới nhất? – Giải pháp là hãy lưu nhiều hơn 10 comments mới nhất: 15, hoặc 20.

0