从redis获取最新的set/hash

2024-10-01 19:28:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚开始使用redis,我已经碰到了noSql的第一个绊脚石;之前我只知道sqlserver。在

我理解一切都是以关键价值为基础的原则。但是,这与订购是如何工作的,例如:

使用哈希集:

HMSET users:1 firstname 'james' lastname 'smith' created 'datetime.datatime.now'

现在假设您添加第二条记录,您将获得哈希集的长度(在本例中,我们将其1返回到值x),然后添加另一行:

^{pr2}$

你如何得到最新的唱片?按日期?或者你可以说'getrecord at-1 of hashset'?在

可能我建议在排序集更合适的时候使用hashset?在


Tags: redisfirstnameusers基础关键nosqlsmith价值
2条回答

您应该使用一组经过排序的用户标识,当您添加到该集合时,添加用户标识和时间戳作为分数。在

然后,您可以使用类似于zrevrange的东西以asc或desc的顺序将它们拉出,将此限制为1个记录以获得最新的记录。在

然后可以从哈希中获取所有值。在

您需要检查SORT命令。在

如果createtimestamp存储在epoch时间中,那么可以按createtimestamp进行排序。在

> HMSET users:1 firstname 'john' lastname 'smith' created 1319729878
"OK"
> HMSET users:2 firstname 'Jane' lastname 'Forbes' created 1319729910
"OK"
> sadd users 1
true
> sadd users 2
true
> sort users get users:*->firstname by users:*->created
["john","Jane"]
> sort users get users:*->firstname by users:*->created desc
["Jane","john"]

你可以得到多个键,如果你想,排序可能是命令与大多数选项,研究文件。在

关于密钥,您必须仔细考虑可能的密钥重用(delete,count+1,insert会重用密钥吗?),所以我在我的项目中只从关系数据库中获取密钥。在

相关问题 更多 >

    热门问题