Giả sử tôi có một bộ (hoặc tập hợp hoặc danh sách được sắp xếp nếu điều đó sẽ tốt hơn) A trong số 100 đến 1000 chuỗi.Redis: Làm thế nào để giao một tập hợp "bình thường" với một tập hợp được sắp xếp?
Sau đó, tôi có một bộ được sắp xếp B của nhiều chuỗi khác, giả sử một triệu.
Bây giờ C nên là giao điểm của Một và B (của chuỗi tất nhiên).
Tôi muốn có mọi bộ (X, SCORE_OF_X_IN_B) trong đó X ở số C.
Bất kỳ ý tưởng nào?
tôi có hai ý tưởng:
- Interstore
- cửa hàng của một một bộ sắp xếp với tất cả các điểm số được 0
- interstore đến D
- có được tất cả các mục của D
- xóa D
- vòng lặp đơn giản trong ứng dụng
- lặp trên Một trong programm khách hàng của tôi
- get zscore cho mỗi chuỗi
Trong khi 1. có quá nhiều chi phí về phía redis (Phải viết cho thí dụ. Trang redis nói khá phức tạp, quá http://redis.io/commands/zinterstore), 2. sẽ có | A | kết nối cơ sở dữ liệu và sẽ không phải là một lựa chọn tốt.
Có lẽ tôi có thể viết một kịch bản redis/lua mà sẽ làm việc như zscore nhưng với một số tùy ý các chuỗi, nhưng tôi không chắc chắn nếu hoster của tôi cho phép các kịch bản ...
Vì vậy, tôi chỉ muốn hỏi SO, nếu có một giải pháp thanh lịch và nhanh chóng có sẵn mà không cần kịch bản!
Đây gần như chính xác những gì tôi đã viết trong câu hỏi của tôi (xem ở trên, điểm 1). Tôi cũng đã viết rằng tôi đánh giá giải pháp này là quá chậm. Lưu ý tôi yêu cầu một giải pháp thanh lịch và nhanh chóng, không phải là một giải pháp đơn giản! Không biết bạn có thể làm một zinterstore trực tiếp với một bộ và một tập hợp được sắp xếp mặc dù. Cảm ơn câu trả lời của bạn và xin lỗi vì rõ ràng đã chọn tiêu đề xấu ... – user562529