gpt4 book ai didi

node.js - redis hash - 按日期顺序获取前 5 个键

转载 作者:IT王子 更新时间:2023-10-29 06:05:32 24 4
gpt4 key购买 nike

我已经像这样将我的数据存储在 redis 哈希中:

client> hmset date:20150513 user 21 m 20 f  1
client> hmset date:20150514 user 17 m 10 f 7
client> hmset date:20150515 user 13 m 3 f 10
client> hmset date:20150516 user 15 m 10 f 5
client> hmset date:20150517 user 15 m 10 f 5
client> hmset date:20150518 user 7 m 3 f 4
client> hmset date:20150519 user 10 m 7 f 3

这是按日期划分的用户摘要(包括男、女 fork )。现在我想按日期降序获取前 5 个键。在上面的例子中,我想要

date:20150519, date:20150518, date:20150517, date:20150516 and date:20150515.

如何编写脚本(luascript)或命令来检索数据?

最佳答案

解决此问题的最佳方法是将您的日期存储在分数为日期的排序集中。您的示例数据需要类似以下内容:

client> ZADD dates 20150515 20150515 20150516 20150516 20150517 20150517 20150518 20150518 20150519 20150519

现在您可以轻松获得前 5 个条目:

client> ZREVRANGEBYSCORE dates +inf -inf LIMIT 0 5

然后为每个回复添加一个 HMGET。您还可以使用 SORT 来实际获取数据,所有这些都在一个命令中,即

client> SORT dates GET date:*->user GET date:*->m GET date:*->f LIMIT 0 5 DESC

最后,这对于 Lua 来说当然是非常可行的,但是除非您需要满足额外的要求,否则脚本在这里可能有点矫枉过正。

关于node.js - redis hash - 按日期顺序获取前 5 个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30326705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com