Redis 中的有序集基于多个条件
Ordered set in Redis based on more than one criteria
我正在尝试创建一个 redis ordered set。问题是需要根据时间戳和分数这两个标准进行排序。但是在redis中,我只能提供一个排序标准:
ZADD {key} {timestamp} {value}
请问如何在此排序中添加分数?
更新:
这是我将两个不同的排序因子合并为一个浮点分数值的方法:
var score = Math.floor(result.created_time/(60*60*24*1000));
score = score + (result.matches/10);
为了说明,我先将时间戳转换为天数。而我的 'matches' 值通常是 0-10。因此,转换为十进制值并添加为分数权重。这给了我得分最高的条目,每天排序。这正是我所需要的。
在您的 Sorted Set 中使用小数作为分数 - 构建分数时,时间戳为小数点左侧的值和右侧的值。
我正在尝试创建一个 redis ordered set。问题是需要根据时间戳和分数这两个标准进行排序。但是在redis中,我只能提供一个排序标准:
ZADD {key} {timestamp} {value}
请问如何在此排序中添加分数?
更新: 这是我将两个不同的排序因子合并为一个浮点分数值的方法:
var score = Math.floor(result.created_time/(60*60*24*1000));
score = score + (result.matches/10);
为了说明,我先将时间戳转换为天数。而我的 'matches' 值通常是 0-10。因此,转换为十进制值并添加为分数权重。这给了我得分最高的条目,每天排序。这正是我所需要的。
在您的 Sorted Set 中使用小数作为分数 - 构建分数时,时间戳为小数点左侧的值和右侧的值。