消除Redis中的幻数

消除Redis中的幻数,redis,magic-numbers,Redis,Magic Numbers,我正在使用一个排序集使用Redis创建索引。我希望匹配结果的顺序如下(首先是较小的字符串): 从I开始,使用分数存储数据: 这些元素被认为是从最高到最高顺序排列的 最低分 我为实现这一点而编写的代码有一个神奇的数字1000,但这是一个任意的数字,足以使它大于我必须存储的最大字符串(我也不知道确切的最大字符串长度是多少,但我确信它小于1000) 你如何有意识地删除这个神奇的数字?分数必须是正数吗?如果没有: 'score' => -string.size 本质上,这是用0替换1000。0是

我正在使用一个排序集使用Redis创建索引。我希望匹配结果的顺序如下(首先是较小的字符串):

从I开始,使用分数存储数据:

这些元素被认为是从最高到最高顺序排列的 最低分

我为实现这一点而编写的代码有一个神奇的数字1000,但这是一个任意的数字,足以使它大于我必须存储的最大字符串(我也不知道确切的最大字符串长度是多少,但我确信它小于1000)


你如何有意识地删除这个神奇的数字?

分数必须是正数吗?如果没有:

'score' => -string.size

本质上,这是用0替换1000。0是允许您使用的数字之一,而不被视为神奇

这不是字典顺序吗?降序字典顺序用于等分的元素。你能举个例子吗?这对我的问题并不重要,但如果你有
tom
art
我认为
tom
是第一位的,因为我使用的是逆序。很好的一点,似乎有效!但这就像一个把戏,如果不允许负数,会发生什么?
Hash[
  'elem'  => string
  'score' => 1000 - string.size
]
'score' => -string.size