Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redis中基于多个条件的有序集_Redis_Set_Unix Timestamp - Fatal编程技术网

Redis中基于多个条件的有序集

Redis中基于多个条件的有序集,redis,set,unix-timestamp,Redis,Set,Unix Timestamp,我正在努力创造一个新的世界。捕获是需要根据两个标准完成的排序,时间戳和分数。但在redis中,我只能提供一个排序标准: ZADD {key} {timestamp} {value} 如何在此订单中添加分数以及plz 更新: 以下是我将两种不同的排序因子合并为单个浮点分数值的方法: var score = Math.floor(result.created_time/(60*60*24*1000)); score = score + (result.matches/10); 为了解释一下,我首

我正在努力创造一个新的世界。捕获是需要根据两个标准完成的排序,时间戳和分数。但在redis中,我只能提供一个排序标准:

ZADD {key} {timestamp} {value}
如何在此订单中添加分数以及plz

更新: 以下是我将两种不同的排序因子合并为单个浮点分数值的方法:

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

为了解释一下,我首先将时间戳转换为天数。我的“匹配”值通常为0-10。因此,转换为十进制值并作为分数权重相加。这给了我最高分数的条目,每天排序。这正是我所需要的。

在排序集中使用小数作为分数-使用时间戳作为小数点左侧的值和右侧的值来构造分数。

谢谢您的提示。这有助于我为自己建立一个通用的分数。我正在用我所采取的方法更新我的问题。非常酷:)顺便说一句,这个技巧绝对是Redis IMO中最简单、最有效且经常被忽略的技巧之一