2015-05-09 16 views
5

Tôi đang cố gắng tạo một redis ordered set. Việc nắm bắt là thứ tự cần phải được thực hiện dựa trên hai tiêu chí, dấu thời gian và điểm số. Nhưng trong redis, tôi chỉ có thể cung cấp một tiêu chí soring:Đã đặt hàng trong Redis dựa trên nhiều tiêu chí

ZADD {key} {timestamp} {value} 

Làm thế nào để thêm điểm trong thứ tự này cũng như plz?

Cập nhật: Dưới đây là cách tiếp cận tôi đã thực hiện để hợp nhất hai bao thanh toán đặt hàng khác nhau vào một giá trị điểm phao duy nhất:

var score = Math.floor(result.created_time/(60*60*24*1000)); 
score = score + (result.matches/10); 

Chỉ cần để giải thích, tôi đã lần đầu tiên chuyển đổi các dấu thời gian để số ngày. Và giá trị 'phù hợp' của tôi thường là 0-10. Do đó, được chuyển đổi thành giá trị thập phân và được thêm dưới dạng trọng lượng phân số. Mà cho tôi ghi bàn cao nhất, được sắp xếp mỗi ngày. Đó là chính xác những gì tôi cần.

Trả lời

4

Sử dụng số thập phân làm điểm trong Bộ sắp xếp của bạn - tạo điểm bằng dấu thời gian là giá trị ở bên trái dấu thập phân và giá trị ở bên phải.

+0

Cảm ơn bạn đã tìm được manh mối. Loại hình này đã giúp tôi tạo nên một điểm chung cho tôi. Tôi đang cập nhật câu hỏi của mình bằng cách tiếp cận tôi đã thực hiện. – Rana

+0

Rất thú vị :) BTW, mẹo này chắc chắn là một trong những cách đơn giản, hiệu quả nhất và thường bị bỏ quên trong Redis IMO –

Các vấn đề liên quan