消除Redis中的幻数

时间:2013-07-10 10:21:37

标签: redis magic-numbers

我正在使用Redis使用有序集创建索引。我想要匹配结果的以下顺序(首先是较小的字符串):

a
ar
art
artu
artur
arturo

Redis documentation我使用分数来存储数据:

  

元素被认为是从最高到有序的   得分最低。

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

Hash[
  'elem'  => string
  'score' => 1000 - string.size
]

如何删除此幻数?

1 个答案:

答案 0 :(得分:2)

得分必须是积极的吗?如果不是:

'score' => -string.size

基本上,这是用0代替1000. 0是你被允许使用的数字之一而不被认为是魔术!