tôi sau này Redis hướng dẫn http://redis.io/topics/twitter-cloneRedis thêm nhiều hơn một mục để Sắp xếp Set
Vào cuối của trang họ nói
Lưu ý: LRANGE không phải là rất hiệu quả nếu danh sách các bài viết bắt đầu là rất lớn và chúng tôi muốn truy cập các yếu tố nằm ở giữa danh sách , vì Danh sách Redis được hỗ trợ bởi danh sách được liên kết. Nếu hệ thống là được thiết kế để phân trang sâu hơn hàng triệu mục, thì tốt hơn là nên chọn khu nghỉ mát để Sắp xếp các bộ.
Đó là lo lắng lớn nhất của tôi vì chúng tôi đang thiết kế một hệ thống có khả năng xử lý hàng triệu nếu không phải hàng tỷ bài đăng và chúng tôi ước tính rằng một mục sẽ được tìm kiếm ở giữa danh sách 20-30% thời gian ứng dụng web đang chạy.
Có một vấn đề với một bộ sắp xếp dù .. Bạn có thể thêm một sắp xếp thiết lập như sau, dùng trong tài khoản rằng đó là (1) đầu tiên gửi
zadd zset 1 "We are happy to announce a new member in our team"
Nhưng nếu chúng ta cần thêm một lĩnh vực nội dung quá?
zadd zset 1 "We are happy to announce a new member in our team" "Please welcome James Sullivan, our new member team! He had..."
Đây là lỗi mà bạn có được
(error) ERR syntax error
khác so với thực tế kỳ lạ mà bạn phải truy cập vào các lĩnh vực như post[0]
và post[1]
thay vì post['title']
và post['content']
(về mặt lý thuyết, tôi đã chưa không đã thử nó) cũng có thực tế rằng chúng ta không thể vượt qua bây giờ.
Thực tế cấu trúc của một bài đối tượng là như thế này và nó phải có thể tìm thấy trong thời gian O (1) thời gian thậm chí ở giữa triệu bài đối tượng
+-----------+
+- 1 <- ID -+
+-----------+
+------------------------+
+- title "the title..." -+
+----------------------------+
+- content "the content..." -+
+-----------------------------+
+- tags "1st tag, 2nd tag.." -+
+-----------------------+
+- author "the_author" -+
+-------------------------+
+- date "unix_timestamp" -+
+-------------------------+
Tôi đang ở một mất mát nếu một Sắp xếp Set là cấu trúc dữ liệu phải để sử dụng và nếu không sử dụng cái nào (bộ, bộ được sắp xếp, danh sách, băm ..).
Bạn sẽ đề xuất điều gì trong trường hợp này?
Tôi nghĩ tôi sẽ đi với tùy chọn đầu tiên. – user3710273