我是这个redis的新手,所以请帮助我! 我使用此命令
在redis中存储值1.5.4
如果我尝试使用此命令再次设置相同的密钥,我将增加值“0”
client.hmset('top_trend', array[0], 0);
client.expire('top_trend', 86400, redis.print);
这会将我的数据数据存储在redis中,如: 例如:key =“top_trend”
if(client.hexists('top_trend', array[0]) == true){
client.hincrby('top_trend', array[0] , 1, redis.print);
}
如果tamil已经可用于键“top_trend”,它将增加其值如下:
"tamil"
"0"
"english"
"0"
"hindi"
"0"
现在我需要对值进行排序: 按降序排列并在节点js中按排序顺序获取值。如何实现它。??我尝试按对象_ * - >对象命令对key_value进行排序。但它不会奏效。帮助我。
答案 0 :(得分:1)
要回答您的问题 - Redis没有提供检索按值排序的哈希内容的方法。如果Hash很小,你能做的就是完整地获取它,然后在应用程序中对它进行排序(Node.js)。
另外,仅供参考,您的代码似乎有些多余 - HINCRBY
会初始化字段,即使它不存在,所以:
127.0.0.1:6379> EXISTS foo
(integer) 0
127.0.0.1:6379> HINCRBY foo bar 1
(integer) 1
127.0.0.1:6379> HGETALL foo
1) "bar"
2) "1"
这意味着除非您有充分的理由初始化并检查存在"手动",否则您只需删除该代码即可。
答案 1 :(得分:0)
如果按某种值排序是您实施所需的功能,您可以考虑使用单独的Redis密钥来执行此操作。您可以通过使用ZINCRBY
增加分数,轻松地使用排序集。此外,通过这种方式,您还可以利用存储值的字典排序。